モジュール java.compiler
パッケージ javax.lang.model.element

インタフェースElement

すべてのスーパー・インタフェース:
AnnotatedConstruct
既知のすべてのサブインタフェース:
ExecutableElement, ModuleElement, PackageElement, Parameterizable, QualifiedNameable, RecordComponentElement, TypeElement, TypeParameterElement, VariableElement

public interface Element extends AnnotatedConstruct
モジュール、パッケージ、クラス、メソッドなどのプログラム要素を表します。 各要素は、コンパイル時の言語レベルの構成(仮想マシンのランタイム・コンストラクトなどではありません)を表します。

要素を比較するには、equals(Object)メソッドを使用してください。 特定の要素が常に同じオブジェクトにより表されるとはかぎりません。

Elementオブジェクトのクラスに基づいて操作を実装するには、visitorを使用するか、getKind()メソッドの結果を使用します。 instanceofを使用することが、このモデル階層内のオブジェクトの有効なクラスを決定するための信頼できる方法であるとはかぎりません。実装によっては、単一のオブジェクトが複数のElementサブインタフェースを実装するようにしている可能性があるためです。

導入されたバージョン:
1.6
関連項目:
  • メソッドのサマリー

    修飾子と型
    メソッド
    説明
    <R, P> R
    accept(ElementVisitor<R,P> v, P p)
    この要素にビジターを適用します。
    この要素で定義された型を返します。
    boolean
    引数がthisと同じ要素を表す場合はtrue、それ以外の場合はfalseを返します。
    <A extends Annotation>
    A
    getAnnotation(Class<A> annotationType)
    存在する場合は、この構造の指定された型の注釈を返し、そうでない場合はnullを返します。
    この構造に直接存在する注釈を返します。
    <A extends Annotation>
    A[]
    getAnnotationsByType(Class<A> annotationType)
    この構造に関連付けられている注釈を返します。
    List<? extends Element>
    大まかに言うとこの要素によって直接囲まれている要素を返します。
    大まかに言うとこの要素を囲んでいる、もっとも内側の要素を返します。
    この要素のkindを返します。
    注釈を除く、この要素の修飾子を返します。
    この要素の単純(非修飾)名を返します。
    int
    Object.hashCodeの一般規約に従います。
  • メソッドの詳細

    • asType

      TypeMirror asType()
      この要素で定義された型を返します。
      戻り値:
      この要素で定義された型
      関連項目:
    • getKind

      ElementKind getKind()
      この要素のkindを返します。
      戻り値:
      この要素のkind
    • getModifiers

      Set<Modifier> getModifiers()
      注釈を除く、この要素の修飾子を返します。 インタフェースのメンバーのpublic修飾子とstatic修飾子などの暗黙的な修飾子を含みます。
      戻り値:
      この要素の修飾子。存在しない場合は空のセット
    • getSimpleName

      Name getSimpleName()
      この要素の単純(非修飾)名を返します。 汎用クラスまたはインタフェースの名前には、その仮型パラメータへの参照は含まれません。 たとえば、java.util.Set<E>を表すtype要素の単純名は"Set"です。 この要素が名前のないpackageまたは名前のないmoduleを表す場合、「名前が空です」が返されます。 コンストラクタを表す場合は、"<init>"という名前が返されます。 静的な初期化子を表す場合は、"<clinit>"という名前が返されます。 「匿名クラス」または「インスタンス・イニシャライザ」を表す場合は、「名前が空です」が返されます。
      戻り値:
      この要素の単純な(不適格)名
      関連項目:
    • getEnclosingElement

      Element getEnclosingElement()
      大まかに言うとこの要素を囲んでいる、もっとも内側の要素を返します。
      戻り値:
      囲んでいる要素。存在しない場合はnull
      関連項目:
    • getEnclosedElements

      List<? extends Element> getEnclosedElements()
      大まかに言うとこの要素によって直接囲まれている要素を返します。 「クラスまたはインタフェース」は、直接宣言するフィールド、メソッド、コンストラクタ、レコード・コンポーネント、およびメンバー・クラスとインタフェースを囲むものとみなされます。 パッケージは、トップ・レベルのクラスとインタフェースを囲みますが、サブパッケージを囲むとはみなされません。 moduleはその中のパッケージを囲みます。 囲まれた要素には、暗黙的に宣言されたmandated要素が含まれます。 その他の種類の要素は、現在のところ要素を囲むことはないとみなされていますが、このAPIやプログラミング言語が拡張されると、そうでなくなる可能性もあります。
      APIのノート:
      特定の種類の要素は、ElementFilterのメソッドを使用して分離できます。
      戻り値:
      囲まれている要素。存在しない場合は空のリスト
      Java言語仕様を参照してください:
      「8.8.9 デフォルト・コンストラクタ」
      「8.9列挙型クラス」
      関連項目:
    • equals

      boolean equals(Object obj)
      引数がthisと同じ要素を表す場合はtrue、それ以外の場合はfalseを返します。
      オーバーライド:
      equals、クラスObject
      APIのノート:
      要素のアイデンティティには、要素メソッドから直接アクセスできない暗黙の状態が含まれます。これには、無関係な型の存在に関する状態も含まれます。 これらのインタフェースの異なる実装で作成された要素オブジェクトは、「同じ」要素がモデル化されていたとしても、同じ動作をするとは想定しないでください。これは、異なるクラス・ローダーを介してロードされた同一のクラス・ファイルでClassオブジェクトが同じにはならないことと同様です。
      パラメータ:
      obj - この要素と比較されるオブジェクト
      戻り値:
      引数がthisと同じ要素を表す場合はtrue、そうでない場合はfalse
      関連項目:
    • hashCode

      int hashCode()
      Object.hashCodeの一般規約に従います。
      オーバーライド:
      hashCode、クラスObject
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
    • getAnnotationMirrors

      List<? extends AnnotationMirror> getAnnotationMirrors()
      この構造に直接存在する注釈を返します。

      継承された注釈を取得するには、getAllAnnotationMirrorsを使用します。

      このメソッドによって返される注釈は宣言注釈であることに注意してください。

      定義:
      インタフェースAnnotatedConstructgetAnnotationMirrors
      戻り値:
      このコンストラクトに直接存在する注釈。存在しない場合は空のリスト
      導入されたバージョン:
      1.6
    • getAnnotation

      <A extends Annotation> A getAnnotation(Class<A> annotationType)
      存在する場合は、この構造の指定された型の注釈を返し、そうでない場合はnullを返します。

      このメソッドが返す注釈には、Class型の値を持つ要素が含まれる場合があります。 この値は直接返されません。つまり、クラス・ローダーを使用するための情報など、クラスを見つけてロードするのに必要な情報は利用できません。 返される注釈で関連するメソッドを呼び出すことによりClassオブジェクトを読み込もうとすると、MirroredTypeExceptionが発生します。これから、対応するTypeMirrorを抽出することができます。 同様に、Class[]の値を持つ要素を読み込もうとすると、MirroredTypesExceptionが発生します。

      ノート: このメソッドは、このインタフェースや関連するインタフェース内のほかのメソッドとは異なります。 このメソッドは、これらのインタフェースにより定義され、これらのインタフェースを通じて使用される表現に対して操作を行うのではなく、実行時リフレクト情報(仮想マシンに現在ロードされている注釈型の表現)に対して操作を行います。 その結果、返された注釈オブジェクトでメソッドを呼び出すと、コア・リフレクションによって返された注釈オブジェクトでメソッドを呼び出したときにスローされる可能性のある例外の多くがスローされることがあります。 このメソッドは、注釈型の既知の固定セットに対して操作を行うように記述された呼出し側を対象としています。

      このメソッドによって返される注釈は宣言注釈であることに注意してください。

      定義:
      インタフェースAnnotatedConstructgetAnnotation
      型パラメータ:
      A - 注釈型
      パラメータ:
      annotationType - 注釈型に対応するClassオブジェクト
      戻り値:
      このような注釈がpresentの場合は指定された型のこのコンストラクト注釈、それ以外の場合はnull
      導入されたバージョン:
      1.6
      関連項目:
    • getAnnotationsByType

      <A extends Annotation> A[] getAnnotationsByType(Class<A> annotationType)
      この構造に関連付けられている注釈を返します。 このコンストラクトに関連付けられている注釈がない場合、戻り値は長さ0の配列です。 コンストラクトCに直接または間接的に存在している注釈の順序の計算では、Cに間接的に存在している注釈は、そのコンテナ注釈の場所に、コンテナ注釈の値要素内に現れる順序で、Cに直接存在しているかのように扱われます。 このメソッドとAnnotatedConstruct.getAnnotation(Class)の違いは、引数が「繰返し可能な注釈タイプ」かどうかをこのメソッドが検出し、その場合、"検索"がコンテナ注釈を使用してその型の注釈を検索しようとすることです。

      このメソッドから返される注釈には、Class型の値を持つ要素が含まれている可能性があります。 この値は直接返されません。つまり、クラス・ローダーを使用するための情報など、クラスを見つけてロードするのに必要な情報は利用できません。 返される注釈で関連するメソッドを呼び出すことによりClassオブジェクトを読み込もうとすると、MirroredTypeExceptionが発生します。これから、対応するTypeMirrorを抽出することができます。 同様に、Class[]の値を持つ要素を読み込もうとすると、MirroredTypesExceptionが発生します。

      ノート: このメソッドは、このインタフェースや関連するインタフェース内のほかのメソッドとは異なります。 このメソッドは、これらのインタフェースにより定義され、これらのインタフェースを通じて使用される表現に対して操作を行うのではなく、実行時リフレクト情報(仮想マシンに現在ロードされている注釈型の表現)に対して操作を行います。 その結果、返された注釈オブジェクトでメソッドを呼び出すと、コア・リフレクションによって返された注釈オブジェクトでメソッドを呼び出したときにスローされる可能性のある例外の多くがスローされることがあります。 このメソッドは、注釈型の既知の固定セットに対して操作を行うように記述された呼出し側を対象としています。

      このメソッドによって返される注釈は宣言注釈であることに注意してください。

      定義:
      インタフェースAnnotatedConstruct内のgetAnnotationsByType
      型パラメータ:
      A - 注釈型
      パラメータ:
      annotationType - 注釈型に対応するClassオブジェクト
      戻り値:
      存在する場合は、このコンストラクトの指定された注釈型の注釈。そうでない場合は空の配列
      導入されたバージョン:
      8
      関連項目:
    • accept

      <R, P> R accept(ElementVisitor<R,P> v, P p)
      この要素にビジターを適用します。
      型パラメータ:
      R - ビジターのメソッドの戻り型
      P - ビジターのメソッドに追加するパラメータの型
      パラメータ:
      v - この要素で動作するビジター
      p - ビジターに追加するパラメータ
      戻り値:
      ビジター指定の結果