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