ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

パッケージ javax.lang.model.element

Javaプログラミング言語の要素をモデル化するために使用されるインタフェースです。

参照: 説明

パッケージjavax.lang.model.elementの説明

Javaプログラミング言語の要素をモデル化するために使用されるインタフェースです。このパッケージでは、「要素」という用語はプログラム要素(プログラムを構成する宣言されたエンティティ)を表すために使用されます。要素には、クラス、インタフェース、メソッド、コンストラクタ、およびフィールドが含まれます。このパッケージのインタフェースでは、メソッド本体の内部にあるプログラムの構造はモデル化されていません。たとえば、forループやtry finallyブロックの表現はありません。ただし、インタフェースではメソッド本体の内部にのみ存在する一部の構造(ローカル変数や匿名クラスなど)はモデル化することができます。

注釈処理のコンテキストで使用するときは、表される要素の正確なモデルを返す必要があります。これは言語モデルであるため、ソース・コードはクラス・ファイルなどの実行可能な出力の中の表現ではなく、その構造構文の基準となる表現(参照表現)を提供します。実行可能な出力は、モデル化要素を作成するための基礎として機能することができます。ただし、ソース・コードを実行可能な出力に変換する処理では、ソース・コード表現の一部の特性を復元することが許可されない場合があります。たとえば、source retentionを持つ注釈をクラス・ファイルから復元することはできません。また、クラス・ファイルがソースの位置情報を提供できない場合もあります。パラメータの名前をクラス・ファイルから復元できない場合があります。次のような場合に、要素上の修飾子が異なる可能性があります。

また、ネストされたクラスの実装で使用されるアクセス用メソッドや、共変戻り値の実装に使用されるブリッジ・メソッドなど、クラス・ファイルの合成構造構文は、このモデルの外部の変換アーティファクトです。

注釈処理中は、不完全なプログラムやエラーのあるプログラムでの操作が必要ですが、結果として得られるモデルの品質が低下します。ソース・コードが構文的に整形式ではない場合や、新しい型の生成によって取り除くことができないようなその他の回復不能なエラーが発生した場合は、モデルが実装の質の問題となることも、ならないこともあります。プログラムが構文的に正しくても、その他の部分でエラーがある場合、返されるモデルには、プログラム内のメソッド本体がすべて"throw new RuntimeException();"で置き換えられた場合と同程度の情報が含まれる必要があります。見つからない型XYZをプログラムが参照する場合、返されるモデルには、型XYZの宣言が"class XYZ {}""interface XYZ {}""enum XYZ {}"、または"@interface XYZ {}"であるとみなされた場合と同程度の情報が含まれる必要があります。見つからない型XYZ<K1, ... ,Kn>をプログラムが参照する場合、返されるモデルには、XYZの宣言が"class XYZ<T1, ... ,Tn> {}"または"interface XYZ<T1, ... ,Tn> {}"であるとみなされた場合と同程度の情報が含まれる必要があります。

特定の実装で特に指定されないかぎり、このパッケージのメソッドが返すコレクションは、呼出し側からは変更不可能であり、並行アクセスに対しては安全ではないと想定するようにしてください。

特に指定されないかぎり、このパッケージのメソッドはnull引数が渡されるとNullPointerExceptionをスローします。

導入されたバージョン:
1.6
ナビゲーション・リンクをスキップ
Java(tm) Platform
Standard Edition 8

バグまたは機能を送信
詳細なAPIリファレンスおよび開発者ドキュメントについては、Java SEのドキュメントを参照してください。そのドキュメントには、概念的な概要、用語の定義、回避方法、有効なコード例などの、開発者を対象にしたより詳細な説明が含まれています。
Copyright© 1993, 2014, Oracle and/or its affiliates. All rights reserved.