Использование JavaParser для поиска наследования с использованием getExtendedType - PullRequest
0 голосов
/ 03 сентября 2018

Мне нужно выяснить, наследует ли класс другой класс, используя метод getExtendedType в Javaparser. Может кто-то указать правильный синтаксис для этого, а также логику, чтобы найти его рекурсивно.

Предположим, что класс A расширяет класс B, который, в свою очередь, расширяет класс C, я хочу начать с A и достичь класса C.

Спасибо.

1 Ответ

0 голосов
/ 08 октября 2018

вы можете использовать этот код с помощью 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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...