获取要加载的类的必要类列表
我想获得一个类的导入列表。 由于编译器将其删除,我认为通过reflection可以扫描类,它的方法,字段等,并收集类加载类所需的类列表。 是否有某种类型的库,教程或文章可以指向我,以便我能更好地理解如何做到这一点? (我知道有类似的问题已被提出,但我找不到合适的答案,我很确定这应该是可行的)。 我看到了一些示例,展示了如何使用源代码,但是在我的场景中并不一定如此。
提前谢谢了!
不,反思无济于事
void test() { Date date = new Date(); }
你无法检测到在reflection方法中使用Date。 但您可以使用Javassist https://github.com/jboss-javassist/javassist
ClassPool cp = ClassPool.getDefault(); Collection classes = cp.get("test.Test").getRefClasses();
此代码生成test.Test类中引用的所有类的名称的集合
我不认为这是远程可能的,除非通过读取源.java文件本身。 我非常确定Java只是在编译期间使用列表进行扫描然后将其抛弃。
Spring确实做了这样的事情,并且有一个google项目可以扫描包的注释等(忘记名字 – 类路径?)。
我建议你看一下spring,很有可能它会完全符合你想要的东西,而且它会以下一个程序员自动理解的方式完成它(如果他们知道Spring)。