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>できません。MyClassCollectiongetRefClasses()
.classファイルを確認したところ、バイトコードにその情報が含まれています ( Ljava/util/List<Lmy/company/MyClass;>;)。
特定の から使用済みのすべてのClassesを抽出するために使用できる別の API を知っていますClassか?