@Documented @Retention(value=RUNTIME) @Target(value=ANNOTATION_TYPE) public @interface Target
java.lang.annotation.ElementType
の列挙型定数によってソース・コード内に示されます。
@Target
メタ注釈が注釈型T
に存在しない場合は、型T
の注釈を、型パラメータ宣言を除く任意の宣言の修飾子として記述できます。
@Target
メタ注釈が存在する場合、コンパイラは、JLS 9.7.4に基づいてElementType
の列挙型定数で指定された使用制限を強制します。
たとえば、この@Target
メタ注釈は、宣言された型自体がメタ注釈型であることを示します。これは注釈型宣言でのみ使用可能です。
@Target(ElementType.ANNOTATION_TYPE) public @interface MetaAnnotationType { ... }
この@Target
メタ注釈は、宣言された型の使用目的が複雑な注釈型宣言のメンバー型だけであることを示します。これは直接的な注釈には使用できません。
@Target({}) public @interface MemberType { ... }
1つのElementType
定数が@Target
注釈内に複数回表示されるとコンパイル時エラーになります。たとえば、次の@Target
メタ注釈は不正です。
@Target({ElementType.FIELD, ElementType.METHOD, ElementType.FIELD}) public @interface Bogus { ... }
修飾子と型 | 必須要素と説明 |
---|---|
ElementType[] |
value
注釈型を適用できる要素の種類の配列を返します。
|
public abstract ElementType[] value
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.