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

インタフェースElements


  • public interface Elements
    プログラム要素で操作を行うためのユーティリティ・メソッド。

    互換性に関する注: プラットフォームの将来のリリースでは、このインタフェースにメソッドが追加される可能性があります。

    導入されたバージョン:
    1.6
    関連項目:
    ProcessingEnvironment.getElementUtils()
    • メソッドの詳細

      • getPackageElement

        PackageElement getPackageElement​(CharSequence name)
        パッケージが環境内で一意である場合は、完全修飾名を指定してパッケージを返します。 モジュールで実行している場合、モジュール・グラフのすべてのモジュールで一致するパッケージが検索されます。
        パラメータ:
        name - 完全修飾パッケージ名、または名前のないパッケージの空の文字列
        戻り値:
        指定されたパッケージ、または一意に見つけることができない場合はnull
      • getPackageElement

        default PackageElement getPackageElement​(ModuleElement module,
                                                 CharSequence name)
        指定されたモジュールから見た完全修飾名が与えられたパッケージを返します。
        実装要件:
        このメソッドのデフォルト実装はnullを返します。
        パラメータ:
        name - 完全修飾パッケージ名、または名前のないパッケージの空の文字列
        module - ルックアップが起きる相対的なモジュール
        戻り値:
        指定されたパッケージ、または見つからない場合はnull
        導入されたバージョン:
        9
        関連項目:
        getAllPackageElements(java.lang.CharSequence)
      • getAllPackageElements

        default Set<? extends PackageElement> getAllPackageElements​(CharSequence name)
        指定された正規名を持つすべてのパッケージ要素を返します。 パッケージ要素が異なるモジュールにある場合、同じ正規名を持つ複数のパッケージ要素が存在する可能性があります。
        実装要件:
        このメソッドのデフォルトの実装では、getAllModuleElementsが呼び出され、結果が保存されます。 モジュールのセットが空の場合、name引数を渡すとgetPackageElement(name)が呼び出されます。 getPackageElement(name)nullの場合、空のパッケージ要素のセットが返されます。それ以外の場合、見つかったpackage要素を持つ単一要素セットが返されます。 モジュールのセットが空でない場合、モジュールは反復され、getPackageElement(module, name)の非null結果はすべてセットに蓄積されます。 セットが返されます。
        パラメータ:
        name - 正規名
        戻り値:
        パッケージ要素、または名前を持つパッケージが見つからない場合は空のセット
        導入されたバージョン:
        9
        関連項目:
        getPackageElement(ModuleElement, CharSequence)
      • getTypeElement

        TypeElement getTypeElement​(CharSequence name)
        型要素が環境内で一意である場合、その正式名が与えられた型要素を返します。 モジュールを使用して実行している場合、モジュール・グラフのすべてのモジュールが検索され、一致する型要素が検索されます。
        パラメータ:
        name - 正規名
        戻り値:
        名前付き型要素、または一意に見つからない場合はnull
      • getTypeElement

        default TypeElement getTypeElement​(ModuleElement module,
                                           CharSequence name)
        指定されたモジュールから見た正式名が与えられた型要素を返します。
        実装要件:
        このメソッドのデフォルト実装はnullを返します。
        パラメータ:
        name - 正規名
        module - ルックアップが起きる相対的なモジュール
        戻り値:
        名前付き型要素。見つからない場合はnull
        導入されたバージョン:
        9
        関連項目:
        getAllTypeElements(java.lang.CharSequence)
      • getAllTypeElements

        default Set<? extends TypeElement> getAllTypeElements​(CharSequence name)
        指定された正規名を持つすべての型要素を返します。 型要素が異なるモジュールにある場合、同じ正準名を持つ複数の型要素が存在する可能性があります。
        実装要件:
        このメソッドのデフォルトの実装では、getAllModuleElementsが呼び出され、結果が保存されます。 モジュールのセットが空の場合、name引数を渡すとgetTypeElement(name)が呼び出されます。 getTypeElement(name)nullの場合、型要素の空のセットが返されます。それ以外の場合は、見つかった型要素を持つ単一要素セットが返されます。 モジュールのセットが空でない場合、モジュールは反復され、getTypeElement(module, name)の非null結果はすべてセットに蓄積されます。 セットが返されます。
        パラメータ:
        name - 正規名
        戻り値:
        型要素、または名前を持つ型が見つからない場合は空のセット
        導入されたバージョン:
        9
        関連項目:
        getTypeElement(ModuleElement, CharSequence)
      • getModuleElement

        default ModuleElement getModuleElement​(CharSequence name)
        モジュール要素の完全修飾名を返します。 指定されたモジュールが見つからない場合は、nullが返されます。 モジュールが見つからない1つの状況は、モジュールなしで「ソース・バージョン」用に構成された注釈処理環境など、環境にモジュールが含まれていない場合です。
        実装要件:
        このメソッドのデフォルト実装はnullを返します。
        パラメータ:
        name - 名前
        戻り値:
        指定されたモジュール要素、または見つからない場合はnull
        導入されたバージョン:
        9
        関連項目:
        getAllModuleElements()
      • getAllModuleElements

        default Set<? extends ModuleElement> getAllModuleElements()
        現在の環境内のすべてのモジュール要素を返します。 モジュールが存在しない場合、空のセットが返されます。 モジュールが存在しない1つの状況は、モジュールなしで「ソース・バージョン」用に構成された注釈処理環境など、モジュールに環境が含まれていない場合に発生します。
        実装要件:
        このメソッドのデフォルトの実装では、空のセットが返されます。
        戻り値:
        既知のモジュール要素、またはモジュールがない場合は空のセット
        導入されたバージョン:
        9
        関連項目:
        getModuleElement(CharSequence)
      • getDocComment

        String getDocComment​(Element e)
        要素のドキュメンテーション("Javadoc")コメントのテキストを返します。

        要素のドキュメンテーション・コメントは、/**で始まり、個別の*/で終わるコメントであり、要素の直前に配置され、空白は無視されます。 したがって、ドキュメンテーション・コメントには、少なくとも3つの"*"文字が含まれます。 ドキュメンテーション・コメントで返されるテキストは、ソース・コードに表示されたとおりに処理された形式のコメントです。 先頭の /**と末尾の*/は削除されます。 コメントの行が最初の"/**"のあとに始まる場合、先行する空白文字は破棄されます。連続した"*"文字が空白のあとに現れる場合や、これらの文字から行が始まるも場合も、同様に破棄されます。 その後、処理された行は連結され(改行文字を含む)、返されます。

        パラメータ:
        e - 調べる対象の要素
        戻り値:
        要素のドキュメンテーション・コメント。存在しない場合はnull
        Java™言語仕様:
        3.6 空白
      • isDeprecated

        boolean isDeprecated​(Element e)
        要素が非推奨の場合はtrue、それ以外の場合はfalseを返します。
        パラメータ:
        e - 調べる対象の要素
        戻り値:
        要素が非推奨の場合はtrue、それ以外の場合はfalse
      • getOrigin

        default Elements.Origin getOrigin​(Element e)
        指定された要素のoriginを返します。

        このメソッドがEXPLICITを返し、その要素がクラス・ファイルから作成された場合、その要素は実際にはソース・コードの明示的に宣言された構文に対応していない可能性があることに注意してください。 これは、ソース・コードから情報を保持する際のクラス・ファイル形式の忠実性の限界に起因します。 例えば、クラス・ファイル形式の少なくともいくつかのバージョンは、コンストラクタがプログラマによって明示的に宣言されたか、暗黙的に「デフォルト・コンストラクタ」として宣言されたかを保持しません。

        実装要件:
        このメソッドのデフォルト実装では、EXPLICITが返されます。
        パラメータ:
        e - 調べる対象の要素
        戻り値:
        指定された要素の起点
        導入されたバージョン:
        9
      • getOrigin

        default Elements.Origin getOrigin​(AnnotatedConstruct c,
                                          AnnotationMirror a)
        指定された注釈ミラーのoriginを返します。 注釈ミラーは、繰り返し可能な注釈型の繰り返し注釈を保持するために使用される暗黙的に宣言された「コンテナ注釈」である場合、mandatedです。

        このメソッドがEXPLICITを返し、クラス・ファイルから注釈ミラーを作成した場合、その要素は実際にはソース・コードの明示的に宣言された構文に対応していない可能性があることに注意してください。 これは、ソース・コードから情報を保持する際のクラス・ファイル形式の忠実性の限界に起因します。 例えば、クラス・ファイル形式の少なくともいくつかのバージョンは、注釈がプログラマによって明示的に宣言されたのか、暗黙的に「コンテナ注釈」として宣言されたのかを保持しません。

        実装要件:
        このメソッドのデフォルト実装では、EXPLICITが返されます。
        パラメータ:
        c - 注釈ミラーが変更する構成
        a - 検査されている注釈ミラー
        戻り値:
        指定された注釈ミラーの起点
        導入されたバージョン:
        9
        Java™言語仕様:
        9.6.3繰り返し可能な注釈型、9.7.5同じ型の複数の注釈
      • getOrigin

        default Elements.Origin getOrigin​(ModuleElement m,
                                          ModuleElement.Directive directive)
        与えられたモジュール・ディレクティブのoriginを返します。

        このメソッドがEXPLICITを返し、moduleディレクティブがクラス・ファイルから作成された場合、モジュール・ディレクティブは実際にはソース・コード内の明示的に宣言された構造体に対応しないことに注意してください。 これは、ソース・コードから情報を保持する際のクラス・ファイル形式の忠実性の限界に起因します。 例えば、クラス・ファイル形式の少なくともいくつかのバージョンは、usesディレクティブがプログラマによって明示的に宣言されたのか、合成構文として追加されたのかを保持しません。

        ソース・ファイルからの情報を保存する際のクラス・ファイル形式の忠実性の限界のために、ディレクティブがクラス・ファイルから作成された場合、実装はディレクティブの起点ステータスを確実に判断できないことに注意してください。

        実装要件:
        このメソッドのデフォルト実装では、EXPLICITが返されます。
        パラメータ:
        m - ディレクティブのモジュール
        directive - モジュール・ディレクティブが調べられている
        戻り値:
        与えられたディレクティブの由来
        導入されたバージョン:
        9
      • isBridge

        default boolean isBridge​(ExecutableElement e)
        実行可能要素がブリッジ・メソッドであればtrueを、そうでなければfalseを返します。
        実装要件:
        このメソッドのデフォルト実装はfalseを返します。
        パラメータ:
        e - 実行可能ファイルが検査されている
        戻り値:
        実行可能要素がブリッジ・メソッドであればtrue、そうでなければfalse
        導入されたバージョン:
        9
      • getBinaryName

        Name getBinaryName​(TypeElement type)
        型要素のバイナリ名を返します。
        パラメータ:
        type - 調べる対象の型要素
        戻り値:
        バイナリ名
        関連項目:
        TypeElement.getQualifiedName()
        Java™言語仕様:
        13.1 バイナリの形式
      • getPackageOf

        PackageElement getPackageOf​(Element type)
        要素のパッケージを返します。 パッケージのパッケージはそれ自身です。
        パラメータ:
        type - 調べる対象の要素
        戻り値:
        要素のパッケージ
      • getModuleOf

        default ModuleElement getModuleOf​(Element type)
        要素のモジュールを返します。 モジュールのモジュールはそれ自身です。 要素のモジュールがない場合、nullが返されます。 要素のモジュールが存在しない1つの状況は、環境にモジュールが含まれていない場合です(モジュールを使用しない「ソース・バージョン」用に構成された注釈処理環境など)。
        実装要件:
        このメソッドのデフォルト実装はnullを返します。
        パラメータ:
        type - 調べる対象の要素
        戻り値:
        要素のモジュール
        導入されたバージョン:
        9
      • getAllMembers

        List<? extends Element> getAllMembers​(TypeElement type)
        継承されているか直接宣言されているかにかかわらず、型要素のすべてのメンバーを返します。 クラスについては、結果にはコンストラクタも含まれますが、ローカル・クラスや匿名クラスは含まれません。
        APIの注:
        特定の種類の要素は、ElementFilterのメソッドを使用して分離できます。
        パラメータ:
        type - 調べる対象の型
        戻り値:
        型のすべてのメンバー
        関連項目:
        Element.getEnclosedElements()
      • getAllAnnotationMirrors

        List<? extends AnnotationMirror> getAllAnnotationMirrors​(Element e)
        直接存在しているか継承を介して存在しているかにかかわらず、要素に存在しているすべての注釈を返します。
        パラメータ:
        e - 調べる対象の要素
        戻り値:
        要素のすべての注釈
        関連項目:
        Element.getAnnotationMirrors(), AnnotatedConstruct
      • hides

        boolean hides​(Element hider,
                      Element hidden)
        型、メソッド、またはフィールドが別のものを覆い隠しているかどうかをテストします。
        パラメータ:
        hider - 先頭の要素
        hidden - 2番目の要素
        戻り値:
        先頭の要素が2番目の要素を覆い隠している場合に限りtrue
      • overrides

        boolean overrides​(ExecutableElement overrider,
                          ExecutableElement overridden,
                          TypeElement type)
        指定された型のメンバーであるメソッドが別のメソッドをオーバーライドするかどうかをテストします。 非抽象メソッドが抽象メソッドをオーバーライドする場合は、前者が後者を実装するとも言われます。

        もっとも単純で一般的な使用法では、typeパラメータの値は、メソッドをオーバーライドする可能性のあるoverriderを直接囲むクラスまたはインタフェースになります。 たとえば、m1がメソッドString.hashCodeを表し、m2がメソッド Object.hashCodeを表すとします。 Stringクラス内でm1m2をオーバーライドするかどうかを次のように調べることができます。実際はオーバーライドします。

        assert elements.overrides(m1, m2, elements.getTypeElement("java.lang.String"));
        さらに興味深いケースとして、次の例があります。型Aのメソッドは同じように名前を付けられた型Bのメソッドをオーバーライドしません。
        class A { public void m() {} }
        interface B { void m(); }
        ...
        m1 = ...; // A.m
        m2 = ...; // B.m
        assert ! elements.overrides(m1, m2, elements.getTypeElement("A"));
        ただし、3番目の型Cのメンバーとして参照されると、AのメソッドはBのメソッドをオーバーライドします。
        class C extends A implements B {}
        ...
        assert elements.overrides(m1, m2, elements.getTypeElement("C"));

        パラメータ:
        overrider - オーバーライドを行う可能性がある先頭のメソッド
        overridden - オーバーライドされる可能性がある2番目のメソッド
        type - メンバーである先頭のメソッドの型
        戻り値:
        先頭のメソッドが2番目のメソッドをオーバーライドする場合に限りtrue
        Java™言語仕様:
        8.4.8 継承、オーバーライド、および覆い隠し、9.4.1 継承およびオーバーライド
      • getConstantExpression

        String getConstantExpression​(Object value)
        プリミティブ値または文字列を表す定数式のテキストを返します。 テキストは、ソース・コードで値を表すのに適した形式で返されます。
        パラメータ:
        value - プリミティブ値または文字列
        戻り値:
        定数式のテキスト
        例外:
        IllegalArgumentException - 引数がプリミティブ値または文字列ではない場合
        関連項目:
        VariableElement.getConstantValue()
      • printElements

        void printElements​(Writer w,
                           Element... elements)
        要素の表現を、指定された順序で、指定されたライターに出力します。 このメソッドは、主に診断のために使用されます。 出力の厳密な形式は指定されておらず、変更される予定があります。
        パラメータ:
        w - 出力先のライター
        elements - 出力する要素
      • getName

        Name getName​(CharSequence cs)
        引数と同じ文字シーケンスを持つ名前を返します。
        パラメータ:
        cs - 名前として返される文字シーケンス
        戻り値:
        引数と同じ文字シーケンスを持つ名前
      • isFunctionalInterface

        boolean isFunctionalInterface​(TypeElement type)
        この型要素が関数型インタフェースである場合はtrueを返し、そうでない場合はfalseを返します。
        パラメータ:
        type - 調べる対象の型要素
        戻り値:
        この要素が関数型インタフェースである場合はtrue、そうでない場合はfalse
        導入されたバージョン:
        1.8
        Java™言語仕様:
        9.8関数型インタフェース