-Si @interface est ajouté, il sera défini comme une annotation.
--Déclaration de paramètres lors de l'utilisation d'annotations
TestAnnotation.java
public @interface TestAnnotation {
String param1();
String param2() default "defaultValue";
}
UserAnnotation.java
@TestAnnotation (param1="30", param2="100")
public UserAnnotation() {}
Classe de référence
Class<?> c = UserAnnotation.class;
for (Annotation a : c.getDeclaredAnnotations()) {
System.out.println(a);
}
Sortie de la console
@com.example.demo.com.annotation.TestAnnotation(param2=100, param1=30)
TestAnnotation
@Documented
@Target({ElementType.TYPE, ElementType.ANNOTATION_TYPE})
@Retention(RetentionPolicy.RUNTIME)
public @interface TestAnnotation{}
--Annotation attachée à une annotation.
@Documented --Soit pour inclure une description de l'annotation dans Javadoc.
@Target --Définissez l'emplacement de l'annotation.
type | La description |
---|---|
TYPE | Interface de classe, énumération, annotation |
FIELD | champ |
METHOD | Méthode |
ANNOTATION_TYPE | Déclaration de type annotée |
@Retantion ―― Dans quelle mesure les informations d'annotation seront-elles utilisées?
type | La description |
---|---|
SOURCE | Il est conservé uniquement sur la source et supprimé lors de la création du fichier de classe. |
CLASS | Il peut être conservé dans un fichier de classe, mais ne peut pas être référencé lorsque l'application est exécutée. |
RUNTIME | Peut être utilisé même lorsque l'application est exécutée. Ceci est nécessaire si vous souhaitez faire référence à l'annotation en réflexion. |
@Inherited --Ajoutez des informations d'annotation à la sous-classe qui déclare la classe.
@Comportement documenté https://qiita.com/opengl-8080/items/1cc996d9e8bb5c811567
Qu'est-ce que la @ meta-annotation? https://www.techscore.com/tech/Java/JavaSE/JavaLanguage/7-3/
Recommended Posts