Java MethodDeclaration ClassOrInterfaceDeclaration查找类名

时间:2014-10-28 13:55:15

标签: java method-declaration javaparser

我使用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 个答案:

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

我刚刚打印了方法名称。我假设这为您提供了使用MethodDeclarations写访问者以执行其他操作的必要信息。