@Documented @Retention(RUNTIME) @Target(ANNOTATION_TYPE) public @interface Target
注釈インタフェースが適用可能なコンテキストを示します。 注釈インタフェースを適用できる宣言コンテキストとタイプのコンテキストは、JLS 9.6.4.1に指定され、
java.lang.annotation.ElementType
の列挙定数によってソース・コードに示されます。
注釈インタフェースT
に@Target
メタ注釈が存在しない場合、T
タイプの注釈は任意の宣言の修飾子として記述できます。
@Target
メタ注釈が存在する場合、コンパイラは、JLS 9.7.4と並べて、ElementType
列挙定数によって示される使用制限を適用します。
たとえば、この@Target
メタ注釈は、宣言されたインタフェース自体がメタ注釈インタフェースであることを示します。 これは、注釈インタフェース宣言でのみ使用できます:
@Target(ElementType.ANNOTATION_TYPE) public @interface MetaAnnotationType { ... }
この@Target
メタ注釈は、宣言されたクラスまたはインタフェースが、複雑な注釈インタフェース宣言でメンバー・クラスまたはインタフェースとしてのみ使用されることを示します。 これは直接的な注釈には使用できません。
@Target({}) public @interface MemberInterface { ... }
1つのElementType
定数が@Target
注釈内に複数回表示されるとコンパイル時エラーになります。 たとえば、次の@Target
メタ注釈は不正です。
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.FIELD}) public @interface Bogus { ... }
- Java言語仕様を参照してください:
-
9.6.4.1 @Target
「9.7.4 注釈が表示される場所」
「9.7.5 同じインタフェースの複数の注釈」 - 導入されたバージョン:
- 1.5
-
必須要素のサマリー
-
要素の詳細
-
value
ElementType[] value注釈インタフェースを適用できる要素の種類の配列を返します。- 戻り値:
- 注釈インタフェースを適用できる要素の種類の配列
-