257


33

Comment déclarer ou marquer une méthode Java comme obsolète?

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?

6 Answer


534


Utilisez https://docs.oracle.com/javase/7/docs/api/java/lang/Deprecated.html [@ 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() {
// ...
}


83


Utilisez à la fois l’annotation @ Deprecated et la balise JavaDoc` @ deprecated`.

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

L’annotation @ Deprecated 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’annotation * @ Deprecated * 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 balise Javadoc * @ deprecated *, bien que les compilateurs Sun le fassent actuellement. D’autres compilateurs peuvent ne pas émettre de tels avertissements. Ainsi, l’utilisation de l’annotation * @ Deprecated * pour générer des avertissements est plus portable que de s’appuyer sur la balise Javadoc *` @ deprecated` *. _

Vous pouvez trouver le document complet à Comment et quand déprécier les API


34


Il y a deux choses que tu peux faire:

  1. Ajouter le http://docs.oracle.com/javase/6/docs/api/java/lang/Deprecated.html [@ Deprecated] annotation à la méthode, et

  2. Ajouter un http://docs.oracle.com/javase/1.5.0/docs/guide/javadoc/deprecation/deprecation.html#javadoc_tag [@ deprecated] balise au javadoc de la méthode

Vous devriez * faire les deux *!

Citant la java documentation à 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 _ _


34


car il manquait quelques explications mineures

Utilisez l’annotation * @ Deprecated * sur la méthode comme celle-ci

 /**
 * @param basePrice
 *
 * @deprecated  reason this method is deprecated

 *              {will be removed in next version}

 *              use {@link #setPurchasePrice()} instead like this:
 *
 *
 *
 * getProduct().setPurchasePrice(200)
 *
  • * / @Deprecated public void setBaseprice (int basePrice) \ {}

n’oubliez pas d’expliquer:

  1. * Pourquoi cette méthode n’est-elle plus recommandée *. Quels problèmes surviennent lorsque En l’utilisant. Fournissez un lien vers la discussion sur la question, le cas échéant. (n’oubliez pas de séparer les lignes pour plus de lisibilité ''

  2. * Quand il sera supprimé *. (faites savoir à vos utilisateurs combien ils peuvent s’appuient toujours sur cette méthode s’ils décident de s’en tenir à l’ancienne)

  3. * Fournissez une solution * ou un lien vers la méthode que vous recommandez {@link #setPurchasePrice ()}


7


Utilisez le annotation @ Deprecated pour votre méthode, et vous devez également le mentionner dans vos javadocs.


3


Jetez un œil à l’annotation «@ Dépréciée».