嗯,首先,这可能是愚蠢和疯狂的。Java源代码依赖关系图
我正在尝试构建(或使用,如果已经存在的话)一个框架,它接收大量Java源文件并输出这些文件交互的方式;例如,file1.java可能会导入 file2.java; file2.java可以从file3.java调用静态方法。如果这可以在不编译或运行该组文件的情况下完成,那理想情况下会很好。我意识到Reflection API可以让我探索一个类的各个部分,但是我正在寻找什么?
此外,如何将其扩展到其他语言,例如Python或Lisp(在此添加任何其他语言)?
我真的不确定如何构建问题标题,所以如果之前有人问过这样的问题,我会很高兴能否将我与该问题联系起来。
从技术上说,你不要导入文件 - 导入仅仅是由编译器使用时,使用非完全限定类名来解决完全限定类名。 –
通过反射,您可以查看类中的字段,方法的参数和返回类型 - 但反射不会告诉您有关在*方法中使用的类的任何内容。 –
查看OpenJDK的来源?我认为你正在做一些编译器已经在做的事情。 – nhahtdh