获取要加载的类的必要类列表

我想获得一个类的导入列表。 由于编译器将其删除,我认为通过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)。