Groovy JsonBuilder调用方法来添加信息
下面的代码工作正常Groovy JsonBuilder调用方法来添加信息,groovy,jsonbuilder,Groovy,Jsonbuilder,下面的代码工作正常 def json = new JsonBuilder() json { writeNumbers(delegate, "myNumbers") } println json.toPrettyString() def writeNumbers(json, name) { json."$name" { "w" 32 "h" 32 } } 但一旦我在另一个“作用域”内移动或添加writeNumbers调用,我就会得到一个stackover
def json = new JsonBuilder()
json {
writeNumbers(delegate, "myNumbers")
}
println json.toPrettyString()
def writeNumbers(json, name) {
json."$name" {
"w" 32
"h" 32
}
}
但一旦我在另一个“作用域”内移动或添加writeNumbers调用,我就会得到一个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")
到
它会起作用的。。。有趣的是,这感觉像个虫子。。。如果我有空闲时间,我会调查;-)
编辑:找到显示相同内容的
this.writeNumbers(delegate, "myNumbers")