Maison > Java > javaDidacticiel > Introduction à la rétention, la documentation et l'héritage des annotations Java

Introduction à la rétention, la documentation et l'héritage des annotations Java

高洛峰
Libérer: 2017-01-23 15:21:53
original
1447 Les gens l'ont consulté

Annotation de rétention

L'annotation de rétention (rétention) indique que ce type d'annotation sera conservé jusqu'à cette étape. Il y a trois valeurs :
1.RetentionPolicy.SOURCE - Ce type d'annotations est uniquement conservé à. au niveau du code source, il sera ignoré au moment de la compilation
2.RetentionPolicy.CLASS - Ce type d'annotations est conservé au moment de la compilation et existe dans le fichier de classe, mais la JVM ignorera
3.RetentionPolicy. - Les annotations de ce type seront conservées par la JVM, afin qu'elles puissent être lues et utilisées par la JVM ou un autre code utilisant le mécanisme de réflexion au moment de l'exécution.
L'exemple 5 illustre la déclaration de RetentionPolicy.RUNTIME :

Exemple 1 d'annotations Java :

@Retention(RetentionPolicy.RUNTIME)
public @interface Test_Retention {
   String doTestRetention();
}
Copier après la connexion

Dans cet exemple, l'annotation @Retention(RetentionPolicy.RUNTIME) indique que l'annotation Test_Retention sera conservée par la machine virtuelle afin qu'elle puisse être lue au moment de l'exécution via réflexion Take.

Annotation documentée

L'annotation documentée indique que cette annotation doit être enregistrée par l'outil javadoc. Par défaut, javadoc n'inclut pas les annotations. Mais si @Documented est spécifié lors de la déclaration d'une annotation. , il sera traité par des outils tels que javadoc, de sorte que les informations sur le type d'annotation seront également incluses dans le document généré. L'exemple 6 démontre davantage l'utilisation de @Documented :

Exemple 2 de l'annotation Java :<🎜. >

@Documented
public @interface Test_Documented {
   String doTestDocument();
}
Copier après la connexion
Ensuite, modifiez la classe TestAnnotations comme ceci :

public class TestAnnotations {
   public static void main(String arg[]) {
      new TestAnnotations().doSomeTestRetention();
      new TestAnnotations().doSomeTestDocumented();
   }
   @Test_Retention (doTestRetention="保留注解信息测试")
   public void doSomeTestRetention() {
      System.out.printf("测试注解类型 &#39;Retention&#39;");
   }
   @Test_Documented(doTestDocument="Hello document")
   public void doSomeTestDocumented() {
      System.out.printf("测试注解类型 &#39;Documented&#39;");
   }
}
Copier après la connexion
Maintenant, si vous utilisez la commande javadoc pour générer le fichier TestAnnotations.html, vous verrez un résultat similaire à la figure 1. .

Introduction à la rétention, la documentation et lhéritage des annotations Java

Comme vous pouvez le voir sur la capture d'écran, il n'y a pas de méthode information de type annotation () pour la méthode doSomeTestRetention() dans le document. Cependant, la documentation du document. La méthode doSomeTestDocumented() fournit les informations de description de l'annotation. En effet, la balise @Documented a été ajoutée à l'annotation Test_Documented. L'annotation précédente Test_Retention ne spécifiait pas la balise @Documented (tag

Inherited). il peut y avoir un problème avec ce paragraphe...)

Il s'agit d'un type d'annotation légèrement plus complexe. Il indique que la classe annotée héritera automatiquement. Plus précisément, si la balise @Inherited est utilisée lors de la définition du. annotation, puis l'annotation définie est utilisée pour annoter une autre classe parent, la classe parent a une autre sous-classe (sous-classe), tous les attributs de la classe parent seront hérités dans sa sous-classe. Dans l'exemple 7, vous verrez les avantages de l'utilisation de l'annotation. @Balise héritée.

Exemple 3 d'annotations Java

Tout d'abord, définissez votre annotation :

@Inherited
public @interface MyParentObject { 
      boolean isInherited() default true;
      String doSomething() default "Do what?";
}
Copier après la connexion
Ensuite, annotez une classe avec l'annotation :

@MyParentObject
public Class MyChildObject {
}
Copier après la connexion
Comme vous pouvez le voir, vous n'avez pas besoin de définir les méthodes d'interface dans la classe d'implémentation. En raison de la balise @Inherited, celles-ci sont automatiquement héritées. À quoi cela ressemblerait-il si vous définissiez la classe d'implémentation dans une ancienne. Comment ? Jetez un œil à l'ancienne implémentation ci-dessous :

public class MyChildObject implements MyParentObject {
   public boolean isInherited() {
      return false;
   }
   public String doSomething() {
      return "";
   }
   public boolean equals(Object obj) {
      return false;
   }
   public int hashCode() {
      return 0;
   }
   public String toString() {
      return "";
   }
   public Class annotationType() {
      return null;
   }
}
Copier après la connexion
Vous voyez la différence ? Comme vous pouvez le voir, vous devez implémenter toutes les méthodes de l'interface parent en plus de isInherited() et doSomething(). méthodes de myParentObject, vous devez également implémenter des équivalents des méthodes java.lang.Object (), toString() et hasCode(). Il existe également la méthode annotationType() de la classe java.lang.annotation.Annotation. pour implémenter ou non ces méthodes, vous devez les inclure dans l'objet hérité.

Conclusion

Cet article vous a montré comment faciliter le développement en utilisant la fonctionnalité d'annotation du JDK5. affecter la sémantique du programme. Les outils de développement et de déploiement peuvent d'une manière ou d'une autre lire ces annotations et les traiter. Grâce à elles, les programmes qui utilisent des annotations peuvent remplacer des fichiers source Java supplémentaires, des documents XML ou d'autres artefacts anciens. L'utilisation d'annotations peut accomplir la même chose avec moins. code et avoir une meilleure détection des erreurs au moment de la compilation. Objectif des annotations L'idée est de passer moins de temps sur les détails difficiles et inutiles et de se concentrer davantage sur les règles de logique métier. Cet article est la première partie de la série d'annotations Java. vous apprendrez à utiliser des annotations pour développer un programme d'application Web simple. Enfin, dans la troisième partie, vous verrez un exemple complexe qui comprend plusieurs tables de base de données

Pour des articles plus pertinents sur l'introduction de la rétention, Documenté et hérité des annotations Java, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal