0

我正在寻找一种方法来定位哪些 MethodInvocation 表达式利用调用者方法声明的参数。

例如:

 public void caller(int param1, int param2){
     m1(param1)
     m2(param2)
     m3(param1, m4(param2))

 }

我希望能够确定 m1 方法调用使用了“param1”,m2 方法调用使用了“param2”,m3 使用了“param1”和“param2”。我可以用 ASTVisitor 做到这一点吗?我没有运气,因为 MethodDeclaration.parameters() 提供了 SingleVariableDeclaration 列表,而 MethodInvocation.arguments() 提供了 Expression 列表。我没有看到 SingleVariableDeclaration 和 Expression 之间的链接。我可以通过他们的名字来分析他们,但这太天真了。

4

1 回答 1

1

绑定是识别变量、字段、方法、类等的权威方式。在这里,您需要比较参数声明和引用的 IVariableBinding。

于 2012-07-09T15:45:42.943 回答