2

JDT を使用してメソッドの呼び出しをチェックし、その引数をチェックしています。MethodInvocation ノードにアクセスしてこの操作を実行する AST Visitor クラスを使用しています。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");

そのようなステートメントにアクセスして、適切な方法で引数を取得するにはどうすればよいですか?

助けてください。

4

1 に答える 1

0

見つかりました。ASTのVariableDeclarationStatementノードにアクセスして、trueを返す必要があります。

public boolean visit(VariableDeclarationStatement node) {

    return true;
}

これにより、ASTのVariableDeclarationStatementの子へのアクセスが可能になります。特定のタイプのメソッド呼び出しは、VariableDeclarationStatementノードの子として提供されるため、それらにもアクセスされます。

于 2012-06-04T05:13:38.240 に答える