Construire des mises en garde concernant l'utilisation de Sun API propriétaire
Je suis en train de nettoyer mon environnement de compilation et ont découvert un couple de mises en garde rapporté autour de l'usage de Soleil API propriétaire du.
[javac] /workspace/<path-to-files>/Handler.java:18: warning: sun.net.www.protocol.http.Handler is Sun proprietary API and may be removed in a future release
[javac] public class Handler extends sun.net.www.protocol.http.Handler {
[javac] ^
[javac] /workspace/<path-to-files>/HttpClient.java:16: warning: sun.net.www.http.HttpClient is Sun proprietary API and may be removed in a future release
[javac] public class HttpClient extends sun.net.www.http.HttpClient {
[javac]
[javac] /workspace/<path-to-files>/HttpURLConnection.java:19: warning: sun.net.www.protocol.http.HttpURLConnection is Sun proprietary API and may be removed in a future release
[javac] public class HttpURLConnection extends sun.net.www.protocol.http.HttpURLConnection {
[javac] ^
et...
[javac] /workspace/<path-to-files>/JavaFile.java:17: warning: sun.misc.BASE64Decoder is Sun proprietary API and may be removed in a future release
[javac] import sun.misc.BASE64Decoder;
[javac] ^
[javac] /workspace/<path-to-files>/JavaFile.java:338: warning: sun.misc.BASE64Encoder is Sun proprietary API and may be removed in a future release
[javac] BASE64Encoder encoder = new BASE64Encoder();
[javac] ^
Quelqu'un peut-il suggérer une bonne alternative à ces API? Ou peuvent-ils être remplacés par l'officiel de Java de l'API? Je me rends compte que ce sont juste des avertissements, mais c'est quelque chose que j'ai l'intention de les résoudre.
- Vous pouvez également voir des suggestions à partir de this post
Vous devez vous connecter pour publier un commentaire.
Il n'est pas clair pourquoi vous êtes à la déclaration de vos propres
HttpURLConnection
etHandler
classes, en premier lieu - sont vous sûr vous voulez compiler ces?Comme pour Base64 j'aime ce domaine public de la mise en œuvre moi-même.
Si vous avez écrit un client http, alors vous avez réinventé la roue. Il y a un très bon niveau déjà dans client http apache.
Si vous voulez en Base64 de codage/décodage, il y a une classe pour que, dans apache commons codec.
Apache Commons Codec inclure Base64 classe.
Je ne suis pas sûr de savoir pourquoi vous avez besoin d'utiliser ces
sun.net.www.protocol.http
des objets directement dans votre code, comme ceux qui sont utilisés en interne parHttpUrlConnection
. Vous pouvez utiliser cet objet au lieu de les internes. Si cette API ne répondent pas à vos besoins, il est Apache HttpClient.Comme pour le codage en base 64, vous pouvez utiliser celui fourni avec Java Mail comme ceci:
ou Apache commons-codec.
Pour Base64, comme de Java 8, vous pouvez utiliser
java.util.Base64.getEncoder().encode(Byte[])
etjava.util.Base64.getDecoder().decode(Byte[])