public interface Elements
互換性に関する注: プラットフォームの将来のリリースでは、このインタフェースにメソッドが追加される可能性があります。
ProcessingEnvironment.getElementUtils()
修飾子と型 | メソッドと説明 |
---|---|
List<? extends AnnotationMirror> |
getAllAnnotationMirrors(Element e)
直接存在しているか継承を介して存在しているかにかかわらず、要素に存在しているすべての注釈を返します。
|
List<? extends Element> |
getAllMembers(TypeElement type)
継承されているか直接宣言されているかにかかわらず、型要素のすべてのメンバーを返します。
|
Name |
getBinaryName(TypeElement type)
型要素のバイナリ名を返します。
|
String |
getConstantExpression(Object value)
プリミティブ値または文字列を表す定数式のテキストを返します。
|
String |
getDocComment(Element e)
要素のドキュメンテーション("Javadoc")コメントのテキストを返します。
|
Map<? extends ExecutableElement,? extends AnnotationValue> |
getElementValuesWithDefaults(AnnotationMirror a)
デフォルトを含む注釈の要素の値を返します。
|
Name |
getName(CharSequence cs)
引数と同じ文字シーケンスを持つ名前を返します。
|
PackageElement |
getPackageElement(CharSequence name)
完全指定名を指定されたパッケージを返します。
|
PackageElement |
getPackageOf(Element type)
要素のパッケージを返します。
|
TypeElement |
getTypeElement(CharSequence name)
正規名を指定された型要素を返します。
|
boolean |
hides(Element hider, Element hidden)
型、メソッド、またはフィールドが別のものを覆い隠しているかどうかをテストします。
|
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)
要素の表現を、指定された順序で、指定されたライターに出力します。
|
PackageElement getPackageElement(CharSequence name)
name
- 完全指定パッケージ名。名前のないパッケージの場合は""null
TypeElement getTypeElement(CharSequence name)
name
- 正規名null
Map<? extends ExecutableElement,? extends AnnotationValue> getElementValuesWithDefaults(AnnotationMirror a)
a
- 調べる対象の注釈AnnotationMirror.getElementValues()
String getDocComment(Element e)
要素のドキュメンテーション・コメントは、「/**
」で始まり、個別の「*/
」で終わるコメントであり、要素の直前に配置され、空白は無視されます。したがって、ドキュメンテーション・コメントには、少なくとも3つの"*
"文字が含まれます。ドキュメンテーション・コメントで返されるテキストは、ソース・コードに表示されたとおりに処理された形式のコメントです。先頭の「/**
」と末尾の「*/
」は削除されます。コメントの行が最初の"/**
"のあとに始まる場合、先行する空白文字は破棄されます。連続した"*
"文字が空白のあとに現れる場合や、これらの文字から行が始まるも場合も、同様に破棄されます。その後、処理された行は連結され(改行文字を含む)、返されます。
e
- 調べる対象の要素null
boolean isDeprecated(Element e)
true
、それ以外の場合はfalse
を返します。e
- 調べる対象の要素true
、それ以外の場合はfalse
Name getBinaryName(TypeElement type)
type
- 調べる対象の型要素TypeElement.getQualifiedName()
PackageElement getPackageOf(Element type)
type
- 調べる対象の要素List<? extends Element> getAllMembers(TypeElement type)
ElementFilter
のメソッドを使用すると、特定の種類の要素を分離できます。
type
- 調べる対象の型Element.getEnclosedElements()
List<? extends AnnotationMirror> getAllAnnotationMirrors(Element e)
e
- 調べる対象の要素Element.getAnnotationMirrors()
, AnnotatedConstruct
boolean hides(Element hider, Element hidden)
hider
- 先頭の要素hidden
- 2番目の要素true
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
のメソッドをオーバーライドしません。
ただし、3番目の型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
- メンバーである先頭のメソッドの型true
String getConstantExpression(Object value)
value
- プリミティブ値または文字列IllegalArgumentException
- 引数がプリミティブ値または文字列ではない場合VariableElement.getConstantValue()
void printElements(Writer w, Element... elements)
w
- 出力先のライターelements
- 出力する要素Name getName(CharSequence cs)
cs
- 名前として返される文字シーケンスboolean isFunctionalInterface(TypeElement type)
true
を返し、そうでない場合はfalse
を返します。type
- 調べる対象の型要素true
、そうでない場合はfalse
バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.