Groovy JsonBuilder вызов методов для добавления информации
Следующий код работает нормально
def json = new JsonBuilder()
json {
writeNumbers(delegate, "myNumbers")
}
println json.toPrettyString()
def writeNumbers(json, name) {
json."$name" {
"w" 32
"h" 32
}
}
Но как только я перемещаю или добавляю вызов writeNumbers внутри другой "области видимости", я получаю исключение stackru; просто так
def json = new JsonBuilder()
json {
scopes {
writeNumbers(delegate, "myNumbers")
}
}
println json.toPrettyString()
def writeNumbers(json, name) {
json."$name" {
"w" 32
"h" 32
}
}
Результат:
Caught: java.lang.StackruError
java.lang.StackruError
Почему это происходит и как я могу обойти это? Спасибо
1 ответ
Решение
Я думаю, что это вызвано основной ошибкой, что метод writeNumbers
неизвестно при построении цепи замыканий.
Вам нужно изменить:
writeNumbers(delegate, "myNumbers")
в
this.writeNumbers(delegate, "myNumbers")
И это будет работать... Интересно, что это похоже на ошибку... Я выясню, получу ли я немного свободного времени;-)