Maison > Java > javaDidacticiel > Comment déclarer la rétention des méta-annotations Java

Comment déclarer la rétention des méta-annotations Java

王林
Libérer: 2023-05-03 09:13:16
avant
1396 Les gens l'ont consulté

1. Déclaration d'annotation : Une annotation peut être déclarée via @interface.

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface BindView {
    int value();
}
Copier après la connexion
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Get {
    String value() default "";
}
Copier après la connexion
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface Queue {
    String value() ;
}
Copier après la connexion

2. Méta-annotation @Target, annotation d'annotation, sa valeur est définie dans la classe d'énumération ElementType.

L'annotation @Target est utilisée pour définir l'emplacement de notre code d'annotation personnalisé.

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.ANNOTATION_TYPE})
public @interface Target {
    ElementType[] value();
}
Copier après la connexion

1) ElementType.FIELD est utilisé sur les variables membres.

2) ElementType.METHOD est utilisé sur les méthodes membres.

3) ElementType.PARAMETER est utilisé sur les paramètres de méthode.

4) ElementType.TYPE est utilisé sur les classes et les interfaces.

5) ElementType.ANNOTATION_TYPE est utilisé dans les annotations.

3.@Méta-annotation Retention, la valeur est définie dans la classe d'énumération RetentionPolicy.

Utilisé pour définir l'étape à laquelle les annotations prennent effet :

1) SOURCE : Les annotations ne sont valables qu'au stade du code source et ne seront pas compilées en bytecode.

2) CLASSE : Les annotations sont valides dans les étapes de code source et de bytecode, mais n'existent pas dans la phase d'exécution.

3) RUNTIME : les annotations sont valides dans le code source, le bytecode et les étapes d'exécution, et sont également les plus couramment utilisées.

@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.ANNOTATION_TYPE})
public @interface Retention {
    RetentionPolicy value();
}
Copier après la connexion
public enum RetentionPolicy {
    SOURCE,
    CLASS,
    RUNTIME;
    private RetentionPolicy() {
    }
}
Copier après la connexion

2. L'utilisation des annotations

    @BindView(R.id.start_activity)
    TextView startTextView;
Copier après la connexion
    @Get("http://www.baidu.com")
    Call getPerson(@Queue("name") String name,@Queue("200")int price);
    @Get("http://www.baidu.com")
    Call getPerson();
Copier après la connexion

L'utilisation des annotations est très simple.

Les annotations seules n'ont aucun sens et doivent être combinées avec d'autres technologies.

Application :

1) Annotation + processeur d'annotation Apt, production de code Java, liaison de données, couteau à beurre, poignée de poignard2

2) Annotation + point d'enfouissement du code

3) Annotation + réflexion + mise à niveau du proxy dynamique Cycle de vie xUtils

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!

Étiquettes associées:
source:yisu.com
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal