2

次のコードは正常に動作します

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

なぜこれが起こっているのですか、どうすれば回避できますか? ありがとう

4

1 に答える 1