有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java使用JavaParser使用getExtendedType查找继承

我需要使用Javaparser的getExtendedType方法确定一个类是否继承了另一个类。有没有人能指出正确的语法以及递归查找的逻辑

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

谢谢


共 (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);