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

列挙型ElementType

java.lang.Object
java.lang.Enum<ElementType>
java.lang.annotation.ElementType
すべての実装されたインタフェース:
Serializable, Comparable<ElementType>, Constable

public enum ElementType
extends Enum<ElementType>
この列挙型の定数は、Javaプログラム内で注釈が表示される可能性のある構文上の場所を簡単に分類します。 これらの定数は、Targetメタ注釈で使用され、指定された型の注釈をどこに書き込むのが適切かを指定します。

注釈が表示される構文上のロケーションは、注釈が宣言に適用される「宣言コンテキスト」と、注釈が宣言および式で使用される型に適用される「タイプ・コンテキスト」に分割されます。

ANNOTATION_TYPECONSTRUCTORFIELDLOCAL_VARIABLEMETHODPACKAGEMODULEPARAMETERTYPE、およびTYPE_PARAMETERの定数は、JLS 9.6.4.1の宣言コンテキストに対応しています。

たとえば、型に@Target(ElementType.FIELD)のメタ注釈が付けられた注釈は、フィールド宣言の修飾子としてのみ記述できます。

定数TYPE_USEは、JLS 4.11の型コンテキストと、2つの宣言コンテキスト: 型(注釈型宣言を含む)と型パラメータ宣言。

たとえば、型に@Target(ElementType.TYPE_USE)のメタ注釈が付けられた注釈は、フィールドの型(ネストされた型、パラメータ化された型、または配列型である場合はそのフィールドの型の内部)に記述でき、クラス宣言などの修飾子として指定することもできます。

TYPE_USE定数には、注釈型にセマンティックスを提供する型チェッカーの設計者の便宜を図って、型宣言および型パラメータ宣言が含まれています。 たとえば、注釈型NonNull@Target(ElementType.TYPE_USE)のメタ注釈が付けられている場合、型チェッカーによる@NonNull class C {...}の処理では、クラスCの変数はすべてnull以外であることを示しますが、他のクラスの変数がnull以外であるか否かは引き続き、変数の宣言に@NonNullが表示されているかどうかに基づいて決められます。

Java言語仕様を参照してください:
9.6.4.1 @Target
4.1タイプと値の種類
導入されたバージョン:
1.5
  • 列挙型定数の詳細

    • TYPE

      public static final ElementType TYPE
      クラス、インタフェース(注釈型の表示)、列挙またはレコード宣言
    • FIELD

      public static final ElementType FIELD
      フィールド宣言(enum定数を含む)です。
    • METHOD

      public static final ElementType METHOD
      メソッド宣言です。
    • PARAMETER

      public static final ElementType PARAMETER
      仮パラメータ宣言です
    • CONSTRUCTOR

      public static final ElementType CONSTRUCTOR
      コンストラクタ宣言です。
    • LOCAL_VARIABLE

      public static final ElementType LOCAL_VARIABLE
      ローカル変数宣言です。
    • ANNOTATION_TYPE

      public static final ElementType ANNOTATION_TYPE
      注釈型宣言です。
    • PACKAGE

      public static final ElementType PACKAGE
      パッケージ宣言です。
    • TYPE_PARAMETER

      public static final ElementType TYPE_PARAMETER
      型パラメータ宣言です
      導入されたバージョン:
      1.8
    • TYPE_USE

      public static final ElementType TYPE_USE
      型の使用
      導入されたバージョン:
      1.8
    • MODULE

      public static final ElementType MODULE
      モジュール宣言。
      導入されたバージョン:
      9
    • RECORD_COMPONENT

      public static final ElementType RECORD_COMPONENT
      この定数は、Java言語のプレビュー機能であるrecordsに関連付けられています。 プログラムは、プレビュー機能が有効な場合にのみ、この定数を使用できます。 プレビュー機能は、将来のリリースで削除されるか、Java言語の永続機能にアップグレードされる可能性があります。

      レコード・コンポーネント
      Java言語仕様を参照してください:
      8.10.3 レコード・メンバー
      9.7.4 注釈が表示される場所
      導入されたバージョン:
      14
  • メソッドの詳細

    • values

      public static ElementType[] values()
      この列挙型の定数を含む配列を、宣言されている順序で返します。
      戻り値:
      この列挙型の定数を含む配列(宣言されている順序)
    • valueOf

      public static ElementType valueOf​(String name)
      指定された名前を持つ、この型の列挙型定数を返します。 文字列は、この型の列挙型定数を宣言するのに使用した識別子と厳密に一致している必要があります。 (不適切な空白文字は許可されません。)
      パラメータ:
      name - 返される列挙型定数の名前。
      戻り値:
      指定された名前を持つ列挙型定数
      例外:
      IllegalArgumentException - 指定された名前を持つ定数をこの列挙型が持っていない場合
      NullPointerException - 引数がnullの場合