0
我正在尋找一種方法來定位哪個MethodInvocation表達式使用調用方法聲明的參數。使用Eclipse AST參數使用
例如:
public void caller(int param1, int param2){
m1(param1)
m2(param2)
m3(param1, m4(param2))
}
我希望能夠以確定的M1方法調用利用「參數1」,並且該平方米方法調用利用「參數2」,和M3利用「參數1」和「參數2」。我可以用ASTVisitor做到這一點嗎?我沒有運氣,因爲MethodDeclaration.parameters()提供了SingleVariableDeclaration的列表,而MethodInvocation.arguments()提供了一個Expression列表。我沒有看到SingleVariableDeclaration和Expression之間的鏈接。我可以用他們的名字來分析他們,但這太天真了。
如何確保方法調用所持有的參數實際上是一個變量?對於上面提供的情況,m3方法調用包含一個只有一個變量的表達式,而另一個表達式具有另一個方法調用。 – HJM 2012-07-09 16:20:33
你知道ASTView插件 - http://www.eclipse.org/jdt/ui/astview/index.php嗎?你應該能夠弄清楚使用這個插件如何識別表達式是否是一個變量。 – 2012-07-09 16:29:34
是的,我一直在努力。我沒有看到直接連接,但我想我可以嘗試解決它的IVariableBinding,並忽略空返回。謝謝。 – HJM 2012-07-09 16:50:16