如何获取ASTVisitor节点的全名



我实现了一个AST访问者,它访问每个方法调用节点。方法

node.getName()

给了我方法的名称,但我想知道全名Package.Class.method。我相信有一个简单的方法可以得到我缺少的东西,但我一直找不到任何东西。以下是我目前所拥有的:

public boolean visit(MethodInvocation node) {
    assert callmap.containsKey(curMethod);
    String m = node.getName().toString();
    callmap.get(curMethod).add(m);
    return false; // do not continue to avoid usage info
}

如何获取此方法的全名?

您应该使用类似的东西:

    IMethodBinding binding = node.resolveMethodBinding();        
    ITypeBinding typeBinding = expression.resolveTypeBinding();
    ITypeBinding type = binding.getDeclaringClass();        
    Expression expression = node.getExpression();

    System.out.println("Type: " + typeBinding.getName());

从文档中,我发现了许多您想要的方法:http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FMethodInvocation.html

http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FIMethodBinding.html

http://help.eclipse.org/indigo/index.jsp?topic=%2Forg.eclipse.jdt.doc.isv%2Freference%2Fapi%2Forg%2Feclipse%2Fjdt%2Fcore%2Fdom%2FITypeBinding.html

试着从varaible检查所有方法,我已经给你

您的问题类似于如何使用Eclipse JDT ASTParser获取方法的类名?

最新更新