Supprimer javac avertissement “...est à l'intérieur d'une API propriétaire et peut être supprimée dans une version future”
Quand je compile le Printemps source JDBC sur OS X avec JDK 1.7.0, je reçois cet avertissement:
warning: CachedRowSetImpl is internal proprietary API and may be removed in a future release
Comment puis-je supprimer le message d'avertissement lors de la compilation?
Je connais déjà et l'utilisation de Java @SuppressWarning annotations. Je suis à la recherche pour l'utilisation spécifique de cette pour supprimer l'avertissement que j'ai décrites.
Ma question est spécifiquement, dans cette ligne de code:
@SuppressWarnings("valuegoeshere")
ce qui devrait "valuegoeshere" soit remplacé par?
EDIT: les Gens, je sais qu'il est préférable d'éviter le code qui mène à l'avertissement. Et généralement, ce serait mon approche. Cependant, je suis de la compilation de code tiers ici que je ne veux pas réécrire. Je veux juste ajouter l'annotation correcte pour supprimer l'avertissement, de sorte que les avertissements je peux vraiment faire quelque chose à propos de ne pas se faire enterrer.
- Je ne sais pas, je ne suis pas à l'aide d'Eclipse. Je suis à la compilation à partir d'un script shell à l'aide d'Oracle Java compilateur.
- double possible de Ne peut pas arrêter ant de générer des avertissements du compilateur
- Plutôt que de supprimer l'avertissement, à la base de l'encoder en Base64, pourquoi ne pas l'utilisation de Java 8 fourni codeur plutôt que le propriétaire de l'API?
Vous devez vous connecter pour publier un commentaire.
Cet avertissement ne peut pas être supprimé. Au moins pas officiellement.
Si vous êtes particulièrement déterminé, vous pouvez utiliser le très sans-papiers
javac -XDignore.symbole.fichier
drapeau qui permettra de compiler votre programme contre le Soleil internert.jar
plutôt que la face publique du fichier de symbolesct.sym
.rt.jar
ne produit pas cet avertissement.Si vous utilisez maven, vous pourriez être intéressé en ajoutant ce qui suit à votre
pom.xml
fichier:build
:plugins
? Sinon, je n'ai pas d'autres idées.<fork>true</fork>
à la configurationvoir cette réponse
Test de code
de la compilation en ligne de commande
ou
compiler passé sans aucun avertissement
supprimer la
SuppressWarnings
tag et compiler à nouveauune erreur est signalée alors
Référence à son interface CachedRowSet pas la mise en œuvre.
J'ai essayé
mais cela ne fonctionne pas.
J'ai donc eu recours à un horrible, horrible, quelque chose que je ne recommande pas en général, mais dans ce cas précis fait de l'avertissement à s'en aller. J'ai utilisé la réflexion pour instancier une nouvelle instance de la com.soleil.ensemble de lignes.CachedRowSetImpl classe.
J'ai remplacé cette ligne, qui a causé la avertissement:
avec ce bloc:
Merci de ne pas le faire dans votre propre code sans d'abord examiner toute autre option.
Essayer le javac option
Si vous compilez à partir d'un IDE, il doit avoir une option pour désactiver les avertissements.
Cela va désactiver TOUS les avertissements qui ne sont pas une partie de Java Langage de Spécification. Ainsi, par exemple, "unchecked" avertissement ne sera pas bloqué.