2
我使用Eclipse JDT AST來解析給定的Java源代碼。在解析代碼時,當它遇到方法調用時,我想知道該特定方法是返回還是設置實例變量的值(基本上是要找出被調用方法是否是同一類調用方的getter/setter方法)。Eclipse JDT AST:如何查找調用方法返回實例變量的值?
例如爲:
public void test(){
//when parsing the following line I want to check whether "getName"
//returns a value of an instance variable.
String x = getName();
//when parsing the following line I want to check whether "setName"
//sets the value of an instance variable.
setName("some-name");
}
我已經使用了AST插件還找出這將幫助我從API是指它可能的路徑,但不能。 請讓我知道這是否可能,如果有的話,哪種方法可以幫助我獲得所需的信息。
是的,你可以檢查微不足道的getter/setter,如果這足夠,那麼它足夠。更復雜的getter/setter可能會執行任意計算,包括調用者在另一個類中實際執行設置的輔助方法。要發現這種getter/setter,需要完整的數據流分析。我不確定JDT是否提供這種功能,而且您不想自己寫這些功能。 –
如果獲得者/制定者更復雜,我會爭論他們是否是第一名的獲得者/制定者。 –