Вопрос
Учитывая простой скрипт (не класс!), как вы устанавливаете значение свойства/поля, которое находится вне метода?
Пример
Следующий код не работает должным образом:
def hi;
def setMyVariable() {
hi = "hello world!"
}
setMyVariable()
assert hi == "hello world!" //fails
println hi //prints null
Неудачные попытки
Я пробовал много вещей, в том числе следующие, которые все потерпели неудачу
...
def setMyVariable() {
this.hi = "hello world!"
}
...
public void setMyVariable() {
hi = "hello world!"
}
...
public String hi;
public void setMyVariable() {
this.hi = "hello world!";
}
Резюме
Каков самый простой способ установить переменную, которая является внешней по отношению к объявлению метода? Единственное, что я могу заставить работать, это следующее. Должен быть более простой способ!
def hi;
def setMyVariable() {
this.binding.setVariable("hi", "hello world!")
}
setMyVariable()
println this.binding.getVariable("hi")
assert this.binding.getVariable("hi") == "hello world!" //passes
assert hi == "hello world!" //fails
groovy.transform.Field
, я получаю сообщение об ошибке, что его невозможно найти. Я искал на Jarvana и, похоже, находится в банке groovy-all. Но, видимо, это не так. Я использую Groovy 2.0. Может он в другой банке? 19.12.2011groovy-1.8.4/lib
в путь к классам. Нет игральных костей. Кто-нибудь на самом деле получил это работает в сценарии ?? Я думал, что это лучший ответ, но я не могу заставить его работать... 19.12.2011<groovy src="PostProcess.groovy" classpath="${classpath.groovy}" />
19.12.2011