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
@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
il y a deux choses que vous pouvez faire:
- ajouter les
@Deprecated
annotation à la méthode, et - 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
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.