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

インタフェースElements


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

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

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

    • getPackageElement

      PackageElement getPackageElement(CharSequence name)
      パッケージが環境内で一意に決定可能な場合、完全修飾名を指定してパッケージを返します。 モジュールを使用して実行している場合、指定された名前のパッケージが2段階のプロセスで検索されます: このプロセスで単一の要素を含むリストが生成された場合は単一の要素が返され、そうでない場合はnullが返されます。
      パラメータ:
      name - 完全修飾パッケージ名、または名前のないパッケージの空の文字列
      戻り値:
      指定されたパッケージ。パッケージを一意に判定できない場合はnull
    • getPackageElement

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

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

      TypeElement getTypeElement(CharSequence name)
      型要素が環境内で一意に決定可能な場合、正規名を指定して型要素を返します。 モジュールを使用して実行している場合、指定された名前の型要素が2段階のプロセスで検索されます: このプロセスで単一の要素を含むリストが生成された場合は単一の要素が返され、そうでない場合はnullが返されます。
      パラメータ:
      name - 正規名
      戻り値:
      名前付きの型要素。型要素を一意に判定できない場合はnull
    • getTypeElement

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

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

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

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

      Map<? extends ExecutableElement,? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror a)
      デフォルトを含む注釈の要素の値を返します。
      パラメータ:
      a - 調べる対象の注釈
      戻り値:
      注釈要素の値(デフォルトを含む)
      関連項目:
    • 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 - 調べる対象の要素
      戻り値:
      指定された要素のorigin
      導入されたバージョン:
      9
    • getOrigin

      指定された注釈ミラーのoriginを返します。 注釈ミラーは、繰返し可能な注釈インタフェースの繰返し注釈を保持するために使用される、暗黙的に宣言された「コンテナ注釈」である場合、mandatedです。

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

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

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

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

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

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

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

      Name getBinaryName(TypeElement type)
      型要素のバイナリ名を返します。
      パラメータ:
      type - 調べる対象の型要素
      戻り値:
      型要素の「バイナリ名」
      Java言語仕様を参照してください:
      13.1 バイナリの形式
      関連項目:
    • getPackageOf

      PackageElement getPackageOf(Element e)
      要素のパッケージを返します。 パッケージのパッケージはそれ自身です。 モジュールのパッケージはnullです。 トップレベルのクラスまたはインタフェースのパッケージは、その「囲みパッケージ」です。 そうでない場合、要素のパッケージは「囲み要素」のパッケージと同じです。
      パラメータ:
      e - 調べる対象の要素
      戻り値:
      要素のパッケージ
    • getModuleOf

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

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

      List<? extends AnnotationMirror> getAllAnnotationMirrors(Element e)
      直接存在しているか継承を介して存在しているかにかかわらず、要素に存在しているすべての注釈を返します。

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

      パラメータ:
      e - 調べる対象の要素
      戻り値:
      要素のすべての注釈
      関連項目:
    • hides

      boolean hides(Element hider, Element hidden)
      型、メソッド、またはフィールドが別のものを覆い隠しているかどうかをテストします。
      パラメータ:
      hider - 先頭の要素
      hidden - 2番目の要素
      戻り値:
      先頭の要素が2番目の要素を覆い隠している場合に限りtrue
      Java言語仕様を参照してください:
      8.4.8 継承、オーバーライドおよび非表示
    • 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"));
      ただし、サード・クラスの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 - 引数がプリミティブ値または文字列ではない場合
      関連項目:
    • printElements

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

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

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

      default boolean isAutomaticModule(ModuleElement module)
      モジュール要素が自動モジュールの場合はtrue、そうでない場合はfalseを返します。
      実装要件:
      このメソッドのデフォルト実装は falseを返します。
      パラメータ:
      module - 検査するモジュール要素
      戻り値:
      モジュール要素が自動モジュールの場合はtrue、それ以外の場合はfalse
      Java言語仕様を参照してください:
      7.7.1 依存性
      導入されたバージョン:
      17
    • recordComponentFor

      default RecordComponentElement recordComponentFor(ExecutableElement accessor)
      指定されたアクセッサのレコード・コンポーネントを返します。 指定されたメソッドがレコード・コンポーネント・アクセッサではない場合、nullを返します。
      実装要件:
      このメソッドのデフォルト実装では、アクセッサを含む要素にRECORD型が含まれているかどうかを調べます(この場合、アクセッサを囲む要素のすべてのレコード・コンポーネントはElementFilter.recordComponentsIn(Iterable)を呼び出すことで取得されます)。 取得されたレコード・コンポーネントの1つ以上のアクセッサが、このメソッドへパラメータとして渡されたアクセッサと等しい場合、その他のケースのnullでは、そのレコード・コンポーネントが返されます。
      パラメータ:
      accessor - レコード・コンポーネントの検索メソッド。
      戻り値:
      レコード・コンポーネント、または指定されたメソッドがレコード・コンポーネント・アクセッサでない場合はnull
      導入されたバージョン:
      16