モジュール java.base
パッケージ java.lang.annotation

注釈インタフェースTarget


注釈インタフェースが適用可能なコンテキストを示します。 注釈インタフェースを適用できる宣言コンテキストおよび型コンテキストはJLS 9.6.4.1で指定され、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 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
      注釈インタフェースを適用できる要素の種類の配列を返します。
      戻り値:
      注釈インタフェースを適用できる要素の種類の配列