@Target

Wendet man @Target auf eine Annotation an, so schränkt man damit die Arten der Elemente ein, auf die diese Annotation angewendet werden kann. @Target besitzt einen Parameter, welcher ein Array von java.lang.annotation.ElementType ist.
@Target(value = {T1, ... , Tk})
java.lang.annotation.ElementType ist ein Aufzählungstyp, welcher alle möglichen Elemente beinhaltet auf die Annotationen angewendet werden können.


ElementType Anwendbar auf


ANNOTATION TYPETypendeklarationen von Annotationen


PACKAGE Pakete


TYPE Klassen (einschließlich enum und Interfaces
(einschließlich Annotations-Typen)


METHOD Methoden


CONSTRUCTOR Konstruktoren


FIELD Felder (einschließlich enum-Konstanten)


PARAMETER Parameter von Methoden oder Konstruktoren


LOCAL VARIABLE lokale Variablen

vergl.  [HC05] Seite 1154

Wird die Art der möglichen „Ziele“ einer Annotation durch @Target eingeschränkt, kontrolliert dies der Compiler. Wendet man eine Annotation auf unzulässige Elemente an, führt das zu einem Compiler-Fehler. Eine Annotation ohne @Target-Einschränkung lässt sich auf alle Elemente anwenden.