Java Language Vérification des annotations d'exécution par réflexion


Exemple

L'API de réflexion de Java permet au programmeur d'effectuer diverses vérifications et opérations sur les champs de classe, les méthodes et les annotations pendant l'exécution. Toutefois, pour qu'une annotation soit visible au moment de l'exécution, RetentionPolicy doit être remplacée par RUNTIME , comme illustré dans l'exemple ci-dessous:

@interface MyDefaultAnnotation {

}

@Retention(RetentionPolicy.RUNTIME)
@interface MyRuntimeVisibleAnnotation {

}

public class AnnotationAtRuntimeTest {

    @MyDefaultAnnotation
    static class RuntimeCheck1 {
    }
    
    @MyRuntimeVisibleAnnotation
    static class RuntimeCheck2 {
    }
    
    public static void main(String[] args) {
        Annotation[] annotationsByType = RuntimeCheck1.class.getAnnotations();
        Annotation[] annotationsByType2 = RuntimeCheck2.class.getAnnotations();

        System.out.println("default retention: " + Arrays.toString(annotationsByType));
        System.out.println("runtime retention: " + Arrays.toString(annotationsByType2));
    }
}