モジュール 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
関連項目:
Elements, TypeMirror
  • メソッドの詳細

    • asType

      TypeMirror asType()
      この要素で定義された型を返します。
      戻り値:
      この要素で定義された型
      関連項目:
      Types, ExecutableElement.asType(), ModuleElement.asType(), PackageElement.asType(), TypeElement.asType(), TypeParameterElement.asType(), VariableElement.asType()
    • getKind

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

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

      Name getSimpleName()
      この要素の単純(非修飾)名を返します。 ジェネリック型の名前には、仮型パラメータへの参照は含まれません。 たとえば、型要素 java.util.Set<E>の単純名は"Set"です。 この要素が名前のないpackageまたは名前のないmoduleを表す場合、空の名前が返されます。 コンストラクタを表す場合は、"<init>"という名前が返されます。 静的な初期化子を表す場合は、"<clinit>"という名前が返されます。 匿名クラスまたはインスタンス初期化子を表す場合は、空の名前が返されます。
      戻り値:
      この要素の単純名
      関連項目:
      PackageElement.getSimpleName(), ExecutableElement.getSimpleName(), TypeElement.getSimpleName(), VariableElement.getSimpleName(), ModuleElement.getSimpleName(), RecordComponentElement.getSimpleName()
    • getEnclosingElement

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

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

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

      int hashCode()
      Object.hashCodeの一般規約に従います。
      オーバーライド:
      hashCode 、クラス:  Object
      戻り値:
      このオブジェクトのハッシュ・コード値。
      関連項目:
      equals(java.lang.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オブジェクト
      戻り値:
      存在する場合は、このコンストラクトの指定された注釈型の注釈。そうでない場合はnull
      導入されたバージョン:
      1.6
      関連項目:
      AnnotatedConstruct.getAnnotationMirrors(), AnnotatedElement.getAnnotation(java.lang.Class<T>), EnumConstantNotPresentException, AnnotationTypeMismatchException, IncompleteAnnotationException, MirroredTypeException, MirroredTypesException
    • accept

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