Java MethodDeclaration ClassOrInterfaceDeclaration - поиск имен классов

Я использую MethodDeclaration для парсера java, который читает в исходном коде, но у меня возникают некоторые проблемы. Я не вижу никаких методов, которые дают мне класс, к которому это относится. Существует ли метод для этого или мне нужно посмотреть в java-синтаксическом анализаторе, чтобы попытаться создать способ, который будет прикреплять к ним каждую MethodDeclaration ClassOrInterfaceDeclaration.

Мне нужен способ определения того, принадлежит ли MethodDeclaration классу или мне нужен способ получить все методы в ClassOrInterfaceDeclaration.

чтобы сделать это более понятным:

MethodDeclaration m = oldMethodDeclaration ; //where oldMethodDeclaration is already defined method declaration

Мне нужен способ найти класс, к которому принадлежит "m". В следующем примере он вернет "ClassName",

т.е.

public class ClassName{
public void oldMethodDeclaration (){
}

}

В качестве альтернативы, если у меня есть

ClassOrInterfaceDeclaration ClassName;

возможно ли мне найти список имен методов, прикрепленных к нему?

1 ответ

Кажется, вы используете JavaParser.

Итак, чтобы получить класс-класс для метода MethodDeclaration:

TypeDeclaration t = (TypeDeclaration) m.getParentNode();

Чтобы посетить методы ClassOrInterfaceDeclaration:

c.accept(new VoidVisitorAdapter<void>() {
 @Override
 public void visit(MethodDeclaration n, Void arg) {
 System.out.println("Method name: " + n.getName());
 }
}, null);
</void>

Я просто напечатал имена методов. Я предполагаю, что дает вам необходимую информацию, чтобы написать посетителю, чтобы сделать что-то еще с MethodDeclarations.

licensed under cc by-sa 3.0 with attribution.