1
我正在使用INRIA勺。如何訪問INRIA-SPOON中的「this」變量
我有一些動態方法的調用,如以下之一:
a.doSomething();
我可以使用CtInvocation
實例的getTarget()
方法獲得對可變訪問a
。我的任務是生成代碼將a
存儲到文件中。爲此,我需要a
的類型和來源位置(類名稱,行等),以便我可以生成類似logger.logSerializable(a, "My.Class:21")
或類似logger.logDoubleArrayList(a, "My.otherClass:23)"
的代碼。
到目前爲止,我設法通過獲取CtInvocation
實例的getTarget
方法的結果來做到這一點。然而,當調用的目標等於this
,例如像:
doSomething(); // equivalent to -> this.doSomething();
的getTarget
回報空。
我怎樣才能獲得this
變量訪問給定CtInvocation
是針對?
你使用哪個版本?在最新的一箇中,getTarget不應該返回null,而應該返回一個CtThisAccess。 –
我正在使用4.2,但我可以更改爲5.2。無論如何,您的評論只是回答了我的問題,謝謝! –
當您將Spoon版本切換到5.2時,您應該有一個標記爲隱式的「CtThisAccess」。 –