0
我有以下的關閉:爲什麼不關閉這個工作?
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)
}
當不再有任何子元素被調用爲「deepSave」時,遞歸停止 - 基本上,它只是保存東西,直到沒有更多的樹進行遞歸。我想知道這裏唯一的問題是缺少預定義變量。 –