-
public interface Elements
プログラム要素で操作を行うためのユーティリティ・メソッド。互換性に関するノート: プラットフォームの将来のリリースでは、このインタフェースにメソッドが追加される可能性があります。
- 導入されたバージョン:
- 1.6
- 関連項目:
ProcessingEnvironment.getElementUtils()
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 インタフェース 説明 static class
Elements.Origin
要素または他の言語モデル・アイテムのorigin。
-
メソッドのサマリー
すべてのメソッド インスタンス・メソッド 抽象メソッド デフォルト・メソッド 修飾子と型 メソッド 説明 List<? extends AnnotationMirror>
getAllAnnotationMirrors(Element e)
直接存在しているか継承を介して存在しているかにかかわらず、要素に存在しているすべての注釈を返します。List<? extends Element>
getAllMembers(TypeElement type)
継承されているか直接宣言されているかにかかわらず、型要素のすべてのメンバーを返します。default Set<? extends ModuleElement>
getAllModuleElements()
現在の環境内のすべてのモジュール要素を返します。default Set<? extends PackageElement>
getAllPackageElements(CharSequence name)
指定された正規名を持つすべてのパッケージ要素を返します。default Set<? extends TypeElement>
getAllTypeElements(CharSequence name)
指定された正規名を持つすべての型要素を返します。Name
getBinaryName(TypeElement type)
型要素のバイナリ名を返します。String
getConstantExpression(Object value)
プリミティブ値または文字列を表す定数式のテキストを返します。String
getDocComment(Element e)
要素のドキュメンテーション("Javadoc")コメントのテキストを返します。Map<? extends ExecutableElement,? extends AnnotationValue>
getElementValuesWithDefaults(AnnotationMirror a)
デフォルトを含む注釈の要素の値を返します。default ModuleElement
getModuleElement(CharSequence name)
モジュール要素の完全修飾名を返します。default ModuleElement
getModuleOf(Element type)
要素のモジュールを返します。Name
getName(CharSequence cs)
引数と同じ文字シーケンスを持つ名前を返します。default Elements.Origin
getOrigin(AnnotatedConstruct c, AnnotationMirror a)
指定された注釈ミラーのoriginを返します。default Elements.Origin
getOrigin(Element e)
指定された要素のoriginを返します。default Elements.Origin
getOrigin(ModuleElement m, ModuleElement.Directive directive)
与えられたモジュール・ディレクティブのoriginを返します。PackageElement
getPackageElement(CharSequence name)
パッケージが環境内で一意である場合は、完全修飾名を指定してパッケージを返します。default PackageElement
getPackageElement(ModuleElement module, CharSequence name)
指定されたモジュールから見た完全修飾名が与えられたパッケージを返します。PackageElement
getPackageOf(Element type)
要素のパッケージを返します。TypeElement
getTypeElement(CharSequence name)
型要素が環境内で一意である場合、その正式名が与えられた型要素を返します。default TypeElement
getTypeElement(ModuleElement module, CharSequence name)
指定されたモジュールから見た正式名が与えられた型要素を返します。boolean
hides(Element hider, Element hidden)
型、メソッド、またはフィールドが別のものを覆い隠しているかどうかをテストします。default boolean
isBridge(ExecutableElement e)
実行可能要素がブリッジ・メソッドであればtrue
を、そうでなければfalse
を返します。boolean
isDeprecated(Element e)
要素が非推奨の場合はtrue
、それ以外の場合はfalse
を返します。boolean
isFunctionalInterface(TypeElement type)
この型要素が関数型インタフェースである場合はtrue
を返し、そうでない場合はfalse
を返します。boolean
overrides(ExecutableElement overrider, ExecutableElement overridden, TypeElement type)
指定された型のメンバーであるメソッドが別のメソッドをオーバーライドするかどうかをテストします。void
printElements(Writer w, Element... elements)
要素の表現を、指定された順序で、指定されたライターに出力します。
-
-
-
メソッドの詳細
-
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)
-
getElementValuesWithDefaults
Map<? extends ExecutableElement,? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror a)
デフォルトを含む注釈の要素の値を返します。- パラメータ:
a
- 調べる対象の注釈- 戻り値:
- デフォルトを含む注釈の要素の値
- 関連項目:
AnnotationMirror.getElementValues()
-
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
クラス内でm1
がm2
をオーバーライドするかどうかを次のように調べることができます。実際はオーバーライドします。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
- 引数がプリミティブ値または文字列ではない場合- 関連項目:
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 関数型インタフェース
-
-