我有以下关闭:
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)
}