Comment déclarer ou marquer une méthode Java comme dépréciée?

je voudrais faire une de mes méthodes "obsolète" = ne sert plus.

mais je voudrais quand même l'avoir dans mon API. Je veux juste montrer "avertissement" à quiconque utilise cette méthode.

Comment puis-je y arriver?

246
demandé sur Adi 2012-01-27 14:22:26

6 réponses

utiliser @Deprecated sur la méthode. N'oubliez pas de clarifier le champ javadoc:

/**
 * Does some thing in old style.
 *
 * @deprecated use {@link #new()} instead.  
 */
@Deprecated
public void old() {
// ...
}
513
répondu Vladimir Ivanov 2018-09-11 15:46:46

utiliser à la fois @Deprecated annotation et le @deprecated étiquette JavaDoc.

la balise JavaDoc @deprecated est utilisée à des fins de documentation.

l'annotation @Deprecated indique au compilateur que la méthode est dépréciée. Voici ce qu'il est dit dans le document Sun/Oracles sur le sujet:

utilisant l'annotation @Deprecated pour déprécier une classe, une méthode ou un champ s'assure que tous les compilateurs émettent des avertissements lorsque le code utilise cet élément de programme. Par contre, rien ne garantit que tous les compilateurs émettront toujours des avertissements basés sur la balise Javadoc "1519160920 @deprecated 1519170920", bien que les compilateurs Sun le fassent actuellement. Les autres compilateurs ne peuvent pas émettre de tels avertissements. Ainsi, l'utilisation de l'annotation @Deprecated pour générer des avertissements est plus portable que de compter sur le @deprecated Javadoc balise.

vous pouvez trouver le document complet à comment et quand déprécier APIs

78
répondu ShaMan-H_Fel 2014-12-19 14:10:45

il y a deux choses que vous pouvez faire:

  1. ajouter les @Deprecated annotation à la méthode, et
  2. ajouter une étiquette @deprecated au javadoc de la méthode

Vous devriez faire les deux !

citant la documentation java à ce sujet:

à partir de J2SE 5.0, vous dépréciez une classe, une méthode ou un champ en utilisant l'annotation @Deprecated. De plus, vous pouvez utiliser la balise Javadoc @deprecated pour indiquer aux développeurs ce qu'ils doivent utiliser à la place.

utilisant l'annotation fait que le compilateur Java génère des avertissements lorsque la classe, la méthode ou le champ déprécié est utilisé. Le compilateur supprime les avertissements de dépréciation si une unité de compilation dépréciée utilise une classe, une méthode ou un champ déprécié. Cela vous permet d' créer des API héritées sans générer d'Avertissements.

il est fortement recommandé d'utiliser la balise Javadoc @deprecated avec les commentaires appropriés expliquant comment utiliser la nouvelle API. Cela garantit que les développeurs auront un chemin de migration utilisable de l'ancienne API à la nouvelle API

31
répondu Bohemian 2013-04-16 21:21:04

puisque quelques explications mineures manquaient

Utiliser @Deprecated annotation sur la méthode comme ceci

/**
 * @param baseprice
 * 
 * @deprecated  reason this method is deprecated </br>
 *              {will be removed in next version} </br>
 *              use {@link #setPurchasePrice()} instead like this: 
 * 
 * <blockquote>
 * <pre>
 * getProduct().setPurchasePrice(200) 
 * </pre></blockquote>
 * 
 */
@Deprecated
public void setBaseprice(int baseprice) {
}

n'oubliez pas d'expliquer:

  • pourquoi cette méthode n'est-elle plus recommandée, remeber doit séparer la ligne de lecture </br>
  • quand il sera supprimé (faites savoir à vos utilisateurs beaucoup qu'ils peuvent toujours compter sur cette méthode si ils ont décidé de s'en tenir à l'ancienne)
  • Fournir une solution ou le lien de la méthode que vous recommander {@link #setPurchasePrice()}
29
répondu azerafati 2014-10-26 09:00:51

utilisez la annotation @Deprecated pour votre méthode, et vous devriez également le mentionner dans vos javadocs.

7
répondu amit 2018-04-13 21:58:43

regardez l'annotation @Deprecated .

3
répondu jham 2012-01-27 10:25:30