モジュール 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以外であることを示すものとして扱われますが、変数宣言に@NonNullが出現するかどうかに基づいて、他のクラスの変数をnull以外にすることもnull以外にすることもできます。

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