groovy jsonbuilder呼叫方法添加信息



以下代码正常工作

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")

它会奏效...有趣的是,这个感觉像一个错误...我会调查是否有空闲时间; - )

编辑:找到了一个以前的问题,该问题显示了相同的东西

相关内容

  • 没有找到相关文章

最新更新