Maison  >  Article  >  Java  >  Explication détaillée et exemples d'annotations @interface en Java

Explication détaillée et exemples d'annotations @interface en Java

黄舟
黄舟original
2017-06-04 09:31:311722parcourir

Cet article présente principalement les informations pertinentes sur l'annotation Java @interface et des exemples. Les amis qui en ont besoin peuvent s'y référer

Détails et exemples de l'annotation Java @interface

1 Introduction

En Java, définir des annotations est en fait similaire à définir une

Interface Il vous suffit d'ajouter un symbole @ avant l'interface. . C'est tout, c'est-à-dire @interface Zhujie{ }, ce qui indique que nous avons défini une annotation nommée @Zhujie. Chaque méthode dans l'annotation définit un élément du type annotation. Attention particulière : la déclaration de la méthode dans l'annotation ne doit pas contenir de paramètres ni lever d'exception ; la valeur de retour de la méthode est limitée aux types simples, String<.>, Class, emnus, Annotation et Array de ces types, mais les méthodes peuvent avoir une valeur par défaut. Les annotations sont équivalentes à une sorte de marque. Ajouter des annotations à un programme équivaut à ajouter une certaine marque au programme. Les compilateurs JAVAC, les outils de développement et d'autres programmes peuvent utiliser des mécanismes de réflexion pour comprendre nos classes et s'il y en a. sont des balises sur divers éléments, si la balise est trouvée, faites la chose correspondante. Par exemple, @Deprecated peut être marqué sur certaines classes, méthodes et champs dont l'utilisation n'est pas recommandée, et un avertissement sera émis si quelqu'un les utilise.

2 Méta-annotations

Annotation @Retention peut être utilisée pour modifier des annotations, qui sont des annotations d'annotations et sont appelées méta-annotations. L'annotation Retention a une valeur d'attribut

, qui est de type RetentionPolicy, et Enum RetentionPolicy est un type d'énumération, qui détermine comment l'annotation Retention doit être utilisée. Elle peut également être comprise comme utilisant Retention avec RententionPolicy. RetentionPolicy a 3 valeurs, à savoir : CLASS, RUNTIME et SOURCE.

    Une annotation modifiée avec @Retention(RetentionPolicy.CLASS), indiquant que les informations d'annotation sont conservées dans le fichier de classe (fichier de bytecode) lorsque le programme est compilé, mais ne seront pas virtualisées La machine lit lors de l'exécution ;
  1. annotations modifiées avec @Retention(RetentionPolicy.SOURCE), indiquant que les informations d'annotation seront supprimées par le compilateur et ne resteront pas dans le fichier de classe. les informations ne resteront que dans le fichier source ;
  2. Les annotations modifiées avec @Retention(RetentionPolicy.RUNTIME) indiquent que les informations annotées sont conservées dans le fichier de classe (fichier de bytecode), lorsque le programme est compilé, il sera conservé par la machine virtuelle au moment de l'exécution.

3

Exemple d'utilisationTout d'abord, créez une annotation simple :

Une fois l'annotation définie, nous pouvons l'utiliser pour faire des déclarations d'annotation. Les annotations sont un modificateur spécial qui peut être utilisé partout où d'autres modificateurs (par exemple, public,
public @interface Coder { 
   int personId(); 
   String company() default "[unassigned]";
}
static

ou final, etc.) sont utilisés. Par convention, les annotations doivent être placées avant les autres modificateurs. L'annotation est déclarée avec le symbole @ suivi du nom du type d'annotation, suivi de parenthèses. Les parenthèses répertorient les paires clé-valeur des éléments ou méthodes de l'annotation, où la valeur doit être <.>Constante. Par exemple : Les annotations sans éléments ni méthodes sont appelées types "marqueur", par exemple :

@coder(personId=20151120,company="YeePay")

Lorsqu'une annotation de marqueur est utilisée, les crochets qui la suivent peuvent être omis . Si l'annotation ne contient qu'un seul élément, le nom de cet élément doit être valeur, par exemple :

public @interface Coder {}

Si le nom de l'élément est valeur, alors lors de l'utilisation de cette annotation, à la fois le nom de l'élément et le signe égal peut être utilisé Omettre, par exemple :

public @interface Coder { 
   String value();
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
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