Les annotations

Les annotations existent depuis Java 5.0.

@Retention

L'annotation @Retention indique la "durée de vie" de l'annotation, c'est à dire de quelle manière elle doit être gérée par le compilateur.

Elle peut prendre une de ces trois valeurs :

//Disponible seulement dans les .java
@Retention(RetentionPolicy.SOURCE)

//Disponible dans les .class à la compilation
@Retention(RetentionPolicy.CLASS)

//Disponible dans les .class à l'exécution
@Retention(RetentionPolicy.RUNTIME)

@Target

L'annotation @Target permet de limiter le type d'éléments sur lesquels l'annotation peut être utilisée.

Elle peut prendre ces valeurs :

@Target( {ElementType.ANNOTATION_TYPE, ElementType.CONSTRUCTOR, ElementType.FIELD,
ElementType.LOCAL_VARIABLE, ElementType.METHOD, ElementType.PACKAGE, ElementType.PARAMETER,
ElementType.TYPE} )
public @interface MonAnnotation {
}