Как получить доступ к этой переменной в INRIA-SPOON
Я работаю с INRIA Spoon.
У меня есть некоторые динамические вызовы методов, такие как следующий:
a.doSomething();
Я могу получить доступ к переменной a
с использованием getTarget()
метод CtInvocation
пример. Моя задача - сгенерировать код для хранения a
в файл. Для этого мне нужен тип и исходная позиция (имя класса, строка и т. Д.) a
так что я могу генерировать код как logger.logSerializable(a, "My.Class:21")
или как logger.logDoubleArrayList(a, "My.otherClass:23)"
,
Пока все хорошо, мне удалось сделать это очень хорошо, получив результат getTarget
метод CtInvocation
пример. Тем не менее, когда цель вызова равна this
как, например:
doSomething(); // equivalent to -> this.doSomething();
getTarget
возвращает ноль.
Как я могу получить this
доступ к переменной один данный CtInvocation
нацеливается?
1 ответ
В поисках целей (getTarget
) экземпляр CtThisAccess
или путем непосредственной обработки CtThisAccess