0

我需要使用 Javaparser 的 getExtendedType 方法查找一个类是否继承了其他类。有人可以为此指出正确的语法以及递归查找它的逻辑。

假设 A 类扩展 B 类,B 类又扩展 C 类,我想从 A 开始并到达 C 类。

谢谢。

4

1 回答 1

1

您可以使用 VoidVisitorAdabter 使用此代码,方法是从您的编译单元调用此访问者,如下所示:

   cu.accept(new VoidVisitorAdapter<Void>() {
            @Override
            public void visit(ClassOrInterfaceDeclaration n, Void arg) {

                 Iterator extendedClassesItr = n.getExtendedTypes().iterator();

                    while (extendedClassesItr.hasNext()) {

                        ClassOrInterfaceType extendedClass = (ClassOrInterfaceType) extendedClassesItr.next();

                      if(extendedClass.getNameAsString().equals("your class name")) {
                           //you now have your class that you look for
                      }             
            }
        }, null);
于 2018-10-08T10:17:26.280 回答