Je voudrais rendre une de mes méthodes "obsolète" = plus utilisée.
Mais j'aimerais quand même l'avoir dans mon API. Je veux juste montrer un "avertissement" à toute personne utilisant cette méthode.
Comment puis-je y parvenir?
Je voudrais rendre une de mes méthodes "obsolète" = plus utilisée.
Mais j'aimerais quand même l'avoir dans mon API. Je veux juste montrer un "avertissement" à toute personne utilisant cette méthode.
Comment puis-je y parvenir?
Réponses:
Utilisez la @Deprecated
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() {
// ...
}
reason
avec une valeur par défaut de ""
n'aurait pas pu faire de mal
@deprecated
message dans le commentaire puisse être ajouté à @Deprecated
(un endroit pour les réparer tous) ...
Utilisez à la fois l' @Deprecated
annotation et la @deprecated
balise JavaDoc.
La @deprecated
balise JavaDoc est utilisée à des fins de documentation.
L' @Deprecated
annotation indique au compilateur que la méthode est obsolète. Voici ce qu'il dit dans le document Sun / Oracles sur le sujet:
L'utilisation de l'
@Deprecated
annotation pour déprécier une classe, une méthode ou un champ garantit que tous les compilateurs émettront des avertissements lorsque le code utilise cet élément de programme. En revanche, rien ne garantit que tous les compilateurs émettront toujours des avertissements basés sur la@deprecated
balise Javadoc, bien que les compilateurs Sun le fassent actuellement. D'autres compilateurs peuvent ne pas émettre de tels avertissements. Ainsi, l'utilisation de l'@Deprecated
annotation pour générer des avertissements est plus portable que l'utilisation de la@deprecated
balise Javadoc.
Vous pouvez trouver le document complet sur Comment et quand déprécier les API
@deprecated
balise javadoc (dans Java 4-), le compilateur a marqué la méthode (classe, champ) comme obsolète et les IDE ont affiché des avertissements, même lorsqu'aucune source n'était disponible.
car il manquait quelques explications mineures
Utilisez une @Deprecated
annotation sur la méthode comme celle-ci
/**
* @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) {
}
<br/>
{@link #setPurchasePrice()}
Il y a deux choses que tu peux faire:
@Deprecated
annotation à la méthode et@deprecated
balise au javadoc de la méthodeVous devriez faire les deux !
Citant la documentation java sur ce sujet:
À partir de J2SE 5.0, vous déconseillez une classe, une méthode ou un champ à l'aide de l'annotation @Deprecated. De plus, vous pouvez utiliser la balise Javadoc @deprecated pour indiquer aux développeurs ce qu'il faut utiliser à la place.
L'utilisation de l'annotation oblige le compilateur Java à générer des avertissements lorsque la classe, la méthode ou le champ obsolète est utilisé. Le compilateur supprime les avertissements de dépréciation si une unité de compilation déconseillée utilise une classe, une méthode ou un champ déconseillé. Cela vous permet de créer des API héritées sans générer d'avertissements.
Il est fortement recommandé d'utiliser la balise Javadoc @deprecated avec des commentaires appropriés expliquant comment utiliser la nouvelle API. Cela garantit que les développeurs auront un chemin de migration réalisable de l'ancienne API vers la nouvelle API
Utilisez l' annotation @Deprecated
pour votre méthode et vous devez également la mentionner dans vos javadocs.