У меня есть следующий класс:Как получить доступ к переменным экземпляра в Groovy?
class MyTask extends DefaultTask {
private String param;
void setParam(String param) {
this.param = param;
}
@TaskAction
void action() {
if (param == "test") {
println "OK"
}
}
}
Он отлично работает, но если я ставлю точку останова на if
в IntelliJ IDEA я не могу получить доступ к значению param
:
- Переменные просмотра показывает
this
, и если я его разворачиваю, я вижуparam
. - Если я делаю Выполнить> Вычислить выражение ... и введите
this
Я вижу то же самое. - НО если я тип
this.param
в окне выражения:
Не удается получить значение свойства только для записи «пары» на MyTask.
Как я могу работать вокруг решения param
быть частной переменной экземпляра, а не «Automagic Groovy собственность»? Есть ли еще волшебная переменная для this
?
Изменение кода и добавление getParam()
- это не вариант!
На основании предложения [email protected]
:
Нет такого поля: пары для класса: MyTask_Decorated
Я также попытался this.class.superclass.getDeclaredField("param").get(this)
:
java.lang .IllegalAccessException: класс java_lang_reflect_Field $ get не могут получить доступ к члену класса MyTask с модификаторами «private»
'this. @ Param' должен работать – cfrick
@cfrick см. Обновление, другие идеи? Похоже, проблема вызвана '_Decorated' thingy. – TWiStErRob
, и в окне 'Variables' нет абсолютно ничего, что привело бы вас к фактической стоимости? – cfrick