web-dev-qa-db-fra.com

@deprecated vs @Deprecated

Je suis en mesure de déprécier une fonction ou une annotation @Deprecated de classe. Mais une entrée @deprecated dans XML commente elle-même marquant la classe/fonction comme obsolète. Le @deprecated rend-il la classe/fonction obsolète?

32
N K

@Deprecated est une annotation qui est lue par le compilateur, utilisée pour marquer une méthode comme déconseillée au compilateur et générera un avertissement de dépréciation au moment de la compilation si la méthode est utilisée.

@deprecated est une balise javadoc utilisée pour fournir de la documentation sur la dépréciation. Vous pouvez l'utiliser pour expliquer pourquoi la méthode a été déconseillée et pour suggérer une alternative. Il est logique d'utiliser cette balise conjointement avec l'annotation @Deprecated.

Exemple d'utilisation:

/**
 * This method does ...
 * @deprecated As of <product> <version>, because ... use
 *             {@link #replacementMethod()} instead.
 */
@Deprecated
public void deprecatedMethod() {
    // ...
}

Voici un guide sur la dépréciation , consultez-le pour plus d'informations.


Pour répondre plus précisément à votre question, vous devez utiliser soit @Deprecated ou les deux car cela n'a aucun sens que vous souhaitiez que ces informations soient limitées à la documentation tout en les masquant du compilateur. @Deprecated marque votre méthode comme obsolète pour tout outil qui s'en soucie (comme les IDE), car il est disponible au moment de l'exécution et de la compilation. En outre, l'outil javadoc prend en compte @Deprecated même si vous n'avez ajouté aucune information concernant la dépréciation en utilisant @deprecated.

Le simple fait de documenter vos méthodes comme obsolètes au lieu de les annoter signifie que les utilisateurs devront rechercher manuellement les utilisations au lieu d'utiliser des outils tels que le compilateur ou leurs propres outils.

80
Ben Barkay

@ Balise Javadoc obsolète: Vous pouvez utiliser la balise @deprecated pour que Javadoc affiche un élément de programme comme obsolète. La balise @deprecated doit être suivie d'un espace ou d'une nouvelle ligne.

@ Déprécié 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, il n'y a aucune garantie que tous les compilateurs émettront toujours des avertissements basés sur la balise Javadoc @deprecated

se référer ici

18
Nambi