Comment puis-je supprimer les avertissements javac relatifs à l’api obsolète?

Quand je comstack, les sorties javac:

Note: Some input files use or override a deprecated API. Note: Recomstack with -Xlint:deprecation for details.` 

Je souhaite supprimer cet avertissement. Essayer -Xlint: aucun ne semble pas aider.

D’après ce que je peux dire dans les documents, vous ne pouvez pas le faire sur la ligne de commande.

Selon la documentation de javac , -Xlint: aucune ne désactive que les avertissements “non mandatés par la spécification de langage Java”. Il semble que l’avertissement de l’utilisation des API obsolètes soit géré par la spécification de langage.

Votre meilleure option serait de réparer l’utilisation des API obsolètes. Toutefois, une option consisterait à append l’ @SuppressWarnings("deprecation") aux classes ou méthodes utilisant les API obsolètes.

Deux manières possibles:

  1. n’utilisez pas l’API obsolète
  2. Utilisez @SuppressWarnings("deprecation")

Pour les autres qui étaient à la recherche de ce problème et qui ont trébuché sur ce sujet comme je l’ai fait …

Essayez: -Xlint: -deprecation

Il semble fonctionner sur JDK 6 … pas sûr des autres.

Avec Java 6, ni l’annotation @Depreated, ni l’indicateur de comiler ne vous aideront ici. La seule solution qui a fonctionné pour moi était de placer un commentaire javadoc avec la balise @deprecated (small caps) sur la méthode obsolète:

 /** * @deprecated overriding deprecated method */ @Override public javax.xml.bind.Validator createValidator() throws JAXBException {...} 

(L’exemple provient d’une classe dérivée de JAXBContext.)

(Je n’ai pas importé la classe Validator obsolète pour éviter un avertissement sur l’instruction d’importation.)

Lorsque vous utilisez gradle, vous pouvez le configurer facilement:

 tasks.withType(JavaComstack) { options.deprecation = false } 

(testé avec Gradle 2 et Java 8)

S’il s’agit d’une API Java de base, il existe certainement un remplacement qui fera ce que vous voulez. Exécutez le javac avec ce paramètre supplémentaire, puis examinez l’API de la méthode obsolète et remplacez-la si nécessaire.

@SuppressWarnings("deprecation") ne fonctionne pas pour moi, au lieu de cela j’ai utilisé

 @SuppressWarnings("unchecked") 

utiliser l’atsortingbut nowarn voir ci-dessous

par exemple

  

par défaut, l’atsortingbut nowarn est désactivé

Si vous comstackz dans la ligne de commande, vous pouvez filtrer les messages avec grep , en filtrant simplement les messages qui ont un contenu indésirable, comme par exemple grep -v deprecated . Vous pouvez utiliser | envoyer la sortie à grep,

 your comstack command | grep -v deprecated