使用JavaParser使用getExtendedType查找继承

时间:2018-09-03 11:04:25

标签: java javaparser

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

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

谢谢。

1 个答案:

答案 0 :(得分: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);