web-dev-qa-db-fra.com

@Annotation documentée dans java

Quel est le but de @Documented annotation en java?

J'ai vu la documentation, mais je n'ai pas pu en tirer grand-chose. Quelqu'un peut-il faire remarquer à l'aide d'un exemple clair

57
praveenkjvs

@Documented est une méta-annotation. Vous postulez @Documented lors de la définition d'une annotation, pour vous assurer que les classes utilisant votre annotation le montrent dans leur JavaDoc généré. Je n'en ai pas beaucoup utilisé, mais il y a un exemple ici . Une question précédente suggère que cela ne fonctionne pas automatiquement dans Eclipse , mais j'ai testé dans Eclipse 3.6, et mes annotations apparaissent dans les popups JavaDoc, que j'attache ou non le @Documented annotation pour eux.

Voici un exemple de Spring, qui garantit que les méthodes transactionnelles sont marquées comme telles dans le JavaDoc:

@Target({ElementType.METHOD, ElementType.TYPE})
@Retention(RetentionPolicy.RUNTIME)
@Inherited
@Documented
public @interface Transactional {
54
Adrian Cox

Si certaines de nos annotations (par exemple, @InWork) est @Documented, puis pour chaque classe ayant ce @InWork annotation le texte généré par javadoc contiendra @InWork texte, comme référence à l'annotation.

Annotation:

@Documented
@Inherited  // for descenders of the annotation to have the @Documented feature automatically
@Retention(RetentionPolicy.RUNTIME) // must be there
public @interface InWork {
    String value();
}

Cible annotée:

/**
 * Annotated class.
 */
@InWork(value = "")
public class MainApp {...}

Le texte javadoc:

enter image description here

Donc, vous devez décider si l'annotation doit être affichée dans le texte javadoc, et si oui, définissez @Documented à elle.

Les informations ci-dessus sont extraites de documentation Oracle .


Veuillez noter que dans Eclipse, vous verrez dans le texte généré par javadoc TOUTES les annotations, sont-elles @Documented, ou non.

Il est toujours correct pour la version 4.3.

33
Gangnus

J'ai trouvé une page utile dans le Tutoriels Java qui donne des exemples et plus d'explications pour un certain nombre d'annotations standard, y compris une utilisation de @Documented. Plus précisément, regardez le bloc Note en bas pour l'exemple de préambule ( section Documentation ).

3
kdopen