警告:BASE64Decoder是内部专用API,可能会在未来发行版中删除
开发过程中遇到这个问题,虽然不影响项目运行,打包发布,但还是要把警告扼杀在摇篮中。
sun.misc包都是sun公司的内部类,并没有在java api中公开过,不建议使用,所以使用这些方法是不安全的,将来随时可能会从中去除,所以相应的应该使用替代的对象及方法。
针对警告: BASE64Decoder是内部专用 API, 可能会在未来发行版中删除解决办法
采用org.apache.commons.codec.binary.Base64替换
1
| import org.apache.commons.codec.binary.Base64;
|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
| import org.apache.commons.codec.binary.Base64;
public class Base64Encoder {
public static byte[] decode(final byte[] bytes) { return Base64.decodeBase64(bytes); }
public static String encode(final byte[] bytes) { return new String(Base64.encodeBase64(bytes)); }
}
|
原方法
1 2 3 4 5 6 7 8 9
| BASE64Encoder encoder = new BASE64Encoder();
String imagestr = encoder.encode(captcha);
BASE64Decoder decoder = new BASE64Decoder();
byte[] bytes = decoder.decodeBuffer(imagestr);
|
现方法
1 2 3 4 5 6 7 8
| import java.util.Base64.Encoder import java.util.Base64.Decoder
Encoder encoder = Base64.getEncoder(); String result = encoder.encodeToString(byteArray);
Decoder decoder = Base64.getDecoder(); byte[] result = decoder.decode(str);
|
————————————————
原文链接:https://blog.csdn.net/weixin_42096792/article/details/122184709