私は次の閉鎖を持っています:
def deepSave = {
it.attributes.each{it.save(validate: false)}
it.elements.each{deepSave(it)}
it.save(validate: false)
}
私は次のように呼んでいます:
deepSave(someObject.rootElement)
これは失敗し、スタック トレースが長すぎて PowerShell のバッファがいっぱいになるため、原因がわかりません。
クロージャーでやろうとしているのと同じことを行うために、以下のメソッドを作成しましたが、正常に動作します。閉鎖が機能しないのはなぜですか?
private def deepSave(def someElement) {
for(attribute in someElement.attributes) {
attribute.save(validate: false)
}
for(element in someElement.elements) {
deepSave(element)
}
someElement.save(validate: false)
}