Class
指定されたものからすべての依存関係を抽出したい(クラスとそのすべての依存関係でArquillianClass
テストを作成するため)。
私は(Javassistを使用してCtClass.getRefClasses()
)そうすることにほとんど成功していませんが、ジェネリックに固執しています(Javassistはジェネリックを正しく解析しているようですが、それらを取得するためのAPIがありません)。
inspect
これが現時点での私の再帰的方法の核心です:
for (String className : (Iterable<String>)ClassPool.getDefault().get(klass.getName()).getRefClasses()) {
try {
inspect(Class.forName(className), classSet); // recursion
} catch ( // ClassNotFoundException and NoClassDefFoundError handling
}
}
Class
その反復は、すべてのes 依存関係を取得するために正しく機能しているようClass
ですが、検査したいがたとえば a を操作している場合、返された byからは取得List<MyClass>
できません。MyClass
Collection
getRefClasses()
.class
ファイルを確認したところ、バイトコードにその情報が含まれています ( Ljava/util/List<Lmy/company/MyClass;>;
)。
特定の から使用済みのすべてのClass
esを抽出するために使用できる別の API を知っていますClass
か?