[Java] Annotation

Définition d'annotation

-Si @interface est ajouté, il sera défini comme une annotation.

Définition des paramètres d'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() {}

Référence d'annotation

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)

Méta-annotation

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.

Site de référence

@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

[Java] Annotation
Histoire des annotations Java
Java
Java
[Java] Création d'annotations originales
Apprendre Java (0)
[Java] tableau
Java protégé
Module [Java]
Tableau Java
Étudier Java ―― 9
Java scratch scratch
Astuces Java, astuces
Méthodes Java
Méthode Java
Tableau Java
[Java] ArrayDeque
java (méthode)
Journée Java 2018
Chaîne Java
java (tableau)
Java statique
Sérialisation Java
java débutant 4
JAVA payé
Étudier Java ―― 4
Java (ensemble)
tri shell java
[Java] compareTo
Étudier Java -5
java réfléchissant 获 获 举
java (interface)
Tableau Java
Étudier Java ―― 1
[Java] Array
[Java] Polymorphisme
Lire CSV en Java (annotation Super CSV)
Étudier Java # 0
Revue Java
framework java
Fonctionnalités Java
[Java] Héritage
FastScanner Java
Fonctionnalités Java
java débutant 3
Mémo Java
java (encapsulation)
Héritage Java
[Java] Surcharge
Les bases de Java
Décompiler Java
note java
java débutant
Java (add2)
JAVA (Carte)
interface [java]
Collection Java9
Les bases de Java
Méthodes Java
Journal de Java