以下代码正常工作
def json = new JsonBuilder()
json {
writeNumbers(delegate, "myNumbers")
}
println json.toPrettyString()
def writeNumbers(json, name) {
json."$name" {
"w" 32
"h" 32
}
}
但是,一旦我移动或添加另一个"范围"的写入呼叫,我就会得到一个stackoverflow异常;就像这样
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.StackOverflowError
java.lang.StackOverflowError
为什么会发生这种情况?我该如何解决?谢谢
我认为这是由于方法writeNumbers
在构建关闭链时未知的潜在错误引起的。
您需要更改:
writeNumbers(delegate, "myNumbers")
to
this.writeNumbers(delegate, "myNumbers")
它会奏效...有趣的是,这个感觉像一个错误...我会调查是否有空闲时间; - )