我正在尝试解析java源代码文件中的所有方法调用并将它们与各自的类相关联。首先,我认为我只需要查找通过 import 语句导入的类(我们公司的准则禁止 *-imports)。然后我可以找出这种类型的变量在哪里使用并记录它们的方法调用。
然后我注意到有像
这样的结构A.getB().getC()
类 B 实际上从未被导入(因为它没有显式使用),但它的函数 getC() 被调用(并且源代码以某种方式隐式“依赖”它)。
还有其他类似的案例吗?
最佳答案
显然,来自同一包的类不会出现在导入语句中。 (您可能已经意识到这一点,但以防万一。)
此外,使用反射,可能有很多方法可以使用未导入的类(请参阅 Black Joker 刚刚发布的答案)。
此外,您可以直接在声明中完全限定类
package.subpackage.Class
它们也不是导入的。
关于java - 解析方法调用: Implicit dependencies on other classes,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33624995/