Maison >Java >Javacommencer >Annotations pour les bases de Java

Annotations pour les bases de Java

王林
王林avant
2019-11-27 16:51:112495parcourir

Annotations pour les bases de Java

1. La méta-annotation

1.1 @Target

[Fonction]

est utilisée pour en précisant les emplacements où les annotations marquées peuvent être utilisées, par exemple : @Target(ElementType.METHOD) : indique qu'elle peut être utilisée sur des méthodes, mais ne peut pas être utilisée sur d'autres structures @Target({ElementType.METHOD, ElementType.TYPE}) : indique qu'elle peut être utilisée sur des méthodes, des interfaces, classes et énumérations.

Tutoriels vidéo en ligne associés : cours Java

1.2 @Retention

[Fonction]

est utilisé pour spécifier le marqué Phase de rétention de l'annotation, cette annotation a trois valeurs :

@Retention(RetentionPolicy.SOURCE) : Cela signifie qu'elle est conservée jusqu'à l'étape du code source et disparaît après compilation

@Retention(RetentionPolicy.CLASS) : Cela signifie qu'elle est conservée. jusqu'à la phase de compilation et disparaît après l'exécution.

@Retention(RetentionPolicy.RUNTIME) : Indique qu'elle est conservée jusqu'à la phase d'exécution. Si vous souhaitez lire les informations d'annotation par réflexion, vous devez spécifier la phase de conservation de l'annotation comme RUNTIME.

1.3 @Inherited

【Fonction】

indique si cette annotation peut être héritée par les sous-classes.

1.4 @Documented

[Fonction]

Indique si cette annotation peut être lue dans le document par Javadoc.

2. Déclaration d'annotation

[Format]

[Méta-annotation]

【修饰符】 @interface 注解名 { 注解体 }

[Exemple]

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
}

3. Déclaration des paramètres de configuration

[Format]

【数据类型】 参数名() default 默认值;

valeur par défaut : lorsque vous devez définir la valeur par défaut, vous pouvez l'ajouter lorsque vous. vous n'avez pas besoin de le définir, vous n'avez pas besoin de l'écrire ;

Les types de données ne peuvent être que : des types de données de base, une chaîne, une classe, une énumération, une annotation et des tableaux unidimensionnels de tous les types ci-dessus.

S'il n'y a qu'un seul membre de paramètre ou un paramètre fréquemment utilisé, vous pouvez définir le nom du paramètre : valeur Lors de l'utilisation d'annotations, si le nom du paramètre est valeur, vous pouvez l'omettre et écrire directement la valeur saisie.

[Exemple]

@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface MyAnnotation {
String name() default "";
}

4. Lire les informations d'annotation

Seule la balise d'annotation @Retention(RetentionPolicy.RUNTIME) peut être lue par réflexion.

Lire les informations d'annotation par réflexion, comme suit :

import java.lang.annotation.ElementType;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

public class TestInterface {
    public static void main(String[] args) {
        MyAnnotation myAnnotation = MyClass.class.getAnnotation(MyAnnotation.class);
        String value = myAnnotation.value();
        System.out.println(value);
    }
}

@MyAnnotation
class MyClass {}

@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@interface MyAnnotation {
    String value() default "我是一个注解";
}

Résultats de sortie :

Annotations pour les bases de Java

Tutoriels d'articles connexes recommandés :Introduction à Java

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer