如何访问VariableDeclarationStatement中的MethodInvocation

时间:2012-05-31 13:46:55

标签: java abstract-syntax-tree eclipse-jdt method-invocation

我正在检查使用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");

我如何访问这些语句并以适当的方式获取参数?

请帮忙。

1 个答案:

答案 0 :(得分:0)

找到它..必须访问AST中的VariableDeclarationStatement节点并返回true。

public boolean visit(VariableDeclarationStatement node) {

    return true;
}

这样可以访问AST中VariableDeclarationStatement的子节点。特定类型的Method调用是VariableDeclarationStatement节点的子节点,因此它们也被访问。