我已经实现了一个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
}
如何获取此方法的全名?
答案 0 :(得分:0)
你应该使用类似的东西:
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
尝试检查我给你的可变的所有方法
您的问题与How to get a class name of a method by using Eclipse JDT ASTParser?
类似