Java Language Comprobaciones de anotación en tiempo de ejecución a través de la reflexión.


Ejemplo

La API de Reflection de Java permite al programador realizar varias comprobaciones y operaciones en campos de clase, métodos y anotaciones durante el tiempo de ejecución. Sin embargo, para que una anotación sea visible en el tiempo de ejecución, la RetentionPolicy debe cambiarse a RUNTIME , como se muestra en el siguiente ejemplo:

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