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

インタフェースElement

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

    public interface Element
    extends AnnotatedConstruct
    モジュール、パッケージ、クラス、メソッドなどのプログラム要素を表します。 各要素は、仮想マシンの実行時の構成要素などではなく、静的な言語レベルの構成要素を表します。

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

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

    導入されたバージョン:
    1.6
    関連項目:
    Elements, TypeMirror
    • メソッドの詳細

      • asType

        TypeMirror asType()
        この要素で定義された型を返します。

        ジェネリック要素は型を1つだけではなく、ファミリで定義します。 これがジェネリック要素であれば、プロトタイプ的型が返されます。 これは、独自の仮型パラメータに対応する型変数での要素の呼出しです。 たとえば、ジェネリック・クラス要素であるC<N extends Number>については、パラメータ化された型C<N>が返されます。 Typesユーティリティ・インタフェースには、要素で定義された型の全範囲を取得するための汎用的なメソッドがより多く用意されています。

        戻り値:
        この要素で定義された型
        関連項目:
        Types
      • getKind

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

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

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

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