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

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

王林
王林avant
2023-05-03 09:13:161342parcourir

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();
}
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Get {
    String value() default "";
}
@Target(ElementType.PARAMETER)
@Retention(RetentionPolicy.RUNTIME)
public @interface Queue {
    String value() ;
}

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();
}

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();
}
public enum RetentionPolicy {
    SOURCE,
    CLASS,
    RUNTIME;
    private RetentionPolicy() {
    }
}

2. L'utilisation des annotations

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

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!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer