@Retention

Die Annotation @Retention besitzt einen Parameter vom Typen java.lang.annotation.RetentionPolicy und veranlasst den Compiler, je nach dem was als Parameter übergeben wurde, diese Annotation nach dem compilieren zu verwerfen, sie in die .class-Datei zu laden und sie dort u.U. mit einem Flag zu versehen, so dass diese Annotation zur Laufzeit über das Reflection-API auswertbar ist. Bei dem Parameter handelt es sich um einen Aufzählungstypen. Die folgende Tabelle zeigt die möglichen Ausprägungen des Typen und deren Bedeutung für die @Retention Annotation.


ElementTypeAnwendbar auf


SOURCE Annotationen werden nicht in die
Klassendateien eingebunden.


CLASS Annotationen werden in die Klassendatei
eingebunden, aber nicht von der VM geladen.


RUNTIME Annotationen stehen zur Laufzeit über das
Reflection-API zur Verfügung.

vergl.  [HC05] Seite 1154