我有一个使用java.sql.Statement.execute的java文件,如下所示。
public class Dummy
{
public void execute(String q) throws SQLException
{
...
Statement stmt = conn.createStatement();
...
stmt.execute(q);
...
}
}
我的用例是我想确定使用JDT ASTVisitor使用“Statement.execute(String)”的所有类及其方法名称是什么。这可能吗?
我在下面使用eclipse ASTView插件找到了条目。
方法绑定:Statement.execute(String)
如何在ASTVisitor中获取此方法绑定值。
我试过了。
@Override
public boolean visit(MethodInvocation node)
{
IMethodBinding iMethod = (IMethodBinding) node.resolveMethodBinding();
if(iMethod != null)
System.out.println("Binding "+iMethod.getName());
return super.visit(node);
}
但node.resolveMethodBinding()始终返回null。
答案 0 :(得分:1)
...我想确定使用" Statement.execute(String)"
的所有类及其方法名称是什么
这听起来像是org.eclipse.jdt.core.search.SearchEngine
的工作,它会比使用访问者遍历所有源文件更快地产生结果。
... node.resolveMethodBinding()始终返回null
这取决于您获得AST的方式。例如,参见org.eclipse.jdt.core.dom.ASTParser.setResolveBindings(boolean)