我想Class从给定中提取所有依赖项Class(以便使用我的类及其所有依赖项创建Arquillian测试)。
我很难做到这一点(使用CtClass.getRefClasses()来自Javassist),但我坚持使用泛型(似乎 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
}
}
该迭代似乎可以正常工作以获取所有Classes 依赖项,但如果Class我要检查的操作例如 a List<MyClass>,我将不会MyClass从Collection返回的 by中获得getRefClasses()。
我检查了.class文件,字节码有该信息(Ljava/util/List<Lmy/company/MyClass;>;)。
你知道另一个 API 可以用来从给定的 es中提取所有使用的 es吗?ClassClass