注釈プロセッサは、注釈付きオブジェクト用と注釈自体用の2 つのTypeElementを提供します。
Class
コードを生成するために、注釈処理中に注釈付きオブジェクトの型を知る必要があると仮定しましょう。TypeElement.getQualifiedName()で修飾名を抽出できます。ただし、使用しようとするとClass.forName(fullyQualifiedName)
、ClassNotFoundException
.
クラスがアノテーション処理コードのパス上にないことを意味している可能性があります。処理ライブラリのクラスパスにすべての注釈付きコードを配置することなく、注釈処理中にそのようなクラスを取得することは可能ですか?
回避策は、次のようなものを生成することです。
Class c = Class.forName("thefullyqualifiedname");
代わりに生成されたコードで c を使用しますが、クリーンではありません。