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 :
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!