我正在检查使用JDT调用方法并对其参数执行检查。我正在使用AST Visitor类访问MethodInvocation节点并执行此操作。我在Visitor类中使用了以下方法。
public boolean visit(MethodInvocation node) {
if (node.getName().toString().equals("createQuery")) {
String argument= node.arguments().get(0).toString();
// process the argument here
}
return true;
}
但是,作为变量声明的一部分的调用没有被访问。
例如:如果我正在寻找方法'createQuery'的调用,将访问下面的调用。
session.createQuery("some query here");
不要访问这个。
Query query = session.createQuery("another query here");
我如何访问这些语句并以适当的方式获取参数?
请帮忙。
答案 0 :(得分:0)
找到它..必须访问AST中的VariableDeclarationStatement节点并返回true。
public boolean visit(VariableDeclarationStatement node) {
return true;
}
这样可以访问AST中VariableDeclarationStatement的子节点。特定类型的Method调用是VariableDeclarationStatement节点的子节点,因此它们也被访问。