パッケージ javax.lang.model.element
for
ループやtry
finally
ブロックの表現はありません。 ただし、インタフェースではメソッド本体の内部にのみ存在する一部の構造(ローカル変数や匿名クラスなど)はモデル化することができます。
注釈処理のコンテキストで使用するときは、表される要素の正確なモデルを返す必要があります。 これは言語モデルであるため、ソース・コードはクラス・ファイルなどの実行可能な出力の中の表現ではなく、その構造構文の基準となる表現(参照表現)を提供します。 実行可能な出力は、モデル化要素を作成するための基礎として機能することができます。 ただし、ソース・コードを実行可能な出力に変換する処理では、ソース・コード表現の一部の特性を復元することが許可されない場合があります。 たとえば、source retentionを持つ注釈をクラス・ファイルから復元することはできません。また、クラス・ファイルがソースの位置情報を提供できない場合もあります。 パラメータの名前をクラス・ファイルから復元できない場合があります。 クラス・ファイルから作成された要素のmodifiersは、以下のようなソース・ファイルから作成された同じ宣言の要素と異なる場合があります:
- クラスまたはインタフェースに
strictfp
がある - パラメータに
final
がある - クラスおよびインタフェースに
protected
、private
、およびstatic
がある
注釈処理中は、不完全なプログラムやエラーのあるプログラムでの操作が必要ですが、結果として得られるモデルの品質が低下します。 ソース・コードが構文的に整形式ではない場合や、新しい型の生成によって取り除くことができないようなその他の回復不能なエラーが発生した場合は、モデルが実装の質の問題となることも、ならないこともあります。 プログラムが構文的に正しくても、その他の部分でエラーがある場合、返されるモデルには、プログラム内のメソッド本体がすべて"throw new RuntimeException();"
で置き換えられた場合と同程度の情報が含まれる必要があります。 プログラムが欠落しているタイプXyzを参照している場合、x yzタイプの宣言が"class Xyz {}"
、"interface Xyz {}"
、"enum Xyz {}"
、 "@interface Xyz {}"
または"record Xyz {}"
であると想定されているより、戻されるモデルには、詳細情報が含まれていない必要があります。 プログラムが欠落している型の Xyz<K1, ... ,Kn>
を参照する場合、返されるモデルは、Xyzの宣言が"class Xyz<T1, ... ,Tn> {}"
または"interface Xyz<T1, ... ,Tn> {}"
であると仮定された場合より少ない情報を含む必要があります
特定の実装で特に指定されないかぎり、このパッケージのメソッドが返すコレクションは、呼出し側からは変更不可能であり、並行アクセスに対しては安全ではないと想定するようにしてください。
特に指定されないかぎり、このパッケージのメソッドはnull
引数が渡されるとNullPointerException
をスローします。
- 導入されたバージョン:
- 1.6
- 関連項目:
Elements
-
インタフェースのサマリー インタフェース 説明 AnnotationMirror 注釈を表します。AnnotationValue 注釈型の要素の値を表します。AnnotationValueVisitor<R,P> 注釈型要素の値のビジターです。ビジター・デザイン・パターンのバリアントを使用します。Element モジュール、パッケージ、クラス、メソッドなどのプログラム要素を表します。ElementVisitor<R,P> ビジター・デザイン・パターンのスタイルによるプログラム要素のビジターです。ExecutableElement クラスまたはインタフェースのメソッド、コンストラクタ、または初期化子(静的またはインスタンス)を表します(注釈型要素を含む)。ModuleElement モジュール・プログラム要素を表します。ModuleElement.Directive このモジュールの宣言内のディレクティブを表します。ModuleElement.DirectiveVisitor<R,P> ビジターのデザイン・パターンのスタイルで、モジュール・ディレクティブのビジター。ModuleElement.ExportsDirective エクスポートされたモジュールのパッケージ。ModuleElement.OpensDirective モジュールの開かれたパッケージ。ModuleElement.ProvidesDirective モジュールによって提供されるサービスの実装。ModuleElement.RequiresDirective モジュールの依存関係。ModuleElement.UsesDirective モジュールによって使用されるサービスへの参照。Name 文字の不変シーケンスです。PackageElement パッケージのプログラム要素を表します。Parameterizable 型パラメータを持つ要素に対応するmixinインタフェースです。QualifiedNameable 修飾名を持つ要素に対応するmixinインタフェースです。RecordComponentElement レコードに関連付けられ、Java言語のプレビュー機能。
レコード・コンポーネントを表します。TypeElement クラスまたはインタフェースのプログラム要素を表します。TypeParameterElement ジェネリック的なクラス、インタフェース、メソッド、またはコンストラクタの要素の仮型パラメータを表します。VariableElement フィールド、enum
定数、メソッドまたはコンストラクタのパラメータ、ローカル変数、リソース変数、または例外パラメータを表します。 -
列挙型のサマリー 列挙型 説明 ElementKind 要素のkind
です。Modifier クラス、メソッド、フィールドなど、プログラム要素の修飾子を表します。ModuleElement.DirectiveKind ディレクティブのkind
。NestingKind 型要素の入れ子の種類です。 -
例外のサマリー 例外 説明 UnknownAnnotationValueException 未知の種類の注釈値が検出されたことを示します。UnknownDirectiveException 未知の種類のモジュール・ディレクティブ文が見つかったことを示します。UnknownElementException 未知の種類の要素が検出されたことを示します。