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?
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() {
// ...
}
  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
@Deprecatedpour 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@deprecated1519170920", bien que les compilateurs Sun le fassent actuellement. Les autres compilateurs ne peuvent pas émettre de tels avertissements. Ainsi, l'utilisation de l'annotation@Deprecatedpour générer des avertissements est plus portable que de compter sur le@deprecatedJavadoc balise.
vous pouvez trouver le document complet à comment et quand déprécier APIs
il y a deux choses que vous pouvez faire:
-  ajouter les   @Deprecatedannotation à la méthode, et
-   ajouter une étiquette   @deprecatedau 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
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()}
  utilisez la    annotation     @Deprecated  pour votre méthode, et vous devriez également le mentionner dans vos javadocs.