我正在制作一个分析器来计算 java 类的继承树的深度。
我正在使用 javaparser 从 java 文件中获取此信息。
我将如何计算 DIT?
我知道 .getSuperClass() 但这在将 java 文件作为静态分析器的一部分进行解析时没有用。
我正在制作一个分析器来计算 java 类的继承树的深度。
我正在使用 javaparser 从 java 文件中获取此信息。
我将如何计算 DIT?
我知道 .getSuperClass() 但这在将 java 文件作为静态分析器的一部分进行解析时没有用。
简短的回答是:你不能单独使用 JavaParser 来做到这一点,但你可以很容易地使用JavaSymbolSolver来做到这一点,JavaSymbolSolver是一个为补充 JavaParser 而构建的库,由维护 JavaParser 的同一团队维护。
实际上,JavaParser 只给你一个 AST。在 AST 中,类的超类只是一个名称。JavaSymbolSolver 为您找到附加到该名称的类型声明。该声明包含查找所有祖先并回答此问题所需的所有信息以及更多信息(例如,直接和间接实现了哪些接口,类继承了哪些字段,哪些方法等)
免责声明:我是 JavaSymbolSolver 的原作者