【发布时间】:2011-11-09 04:42:53
【问题描述】:
你能帮我找出从下面的地图中简单删除的问题(注意它下面的输出)吗?
public class Issue {
...
def allButThis() {
println "allButThis ..."
def all = Issue.list()
println "all is ${all}"
all.remove(this.id)
println "all with ${this.id} removed: ${all}"
return all
}
String toString() {return "${id}: ${title}"}
当我运行它时,我得到以下结果,即第 2 项没有按预期删除
allButThis ...
all is [1: Issue-1, 2: Issue-2, 3: Issue-3]
all with 2 removed: [1: Issue-1, 2: Issue-2, 3: Issue-3]
据我所知,此删除应该有效,例如http://groovy.codehaus.org/JN1035-Maps,其中“移除”在页面下方三分之一处描述。
我正在使用 Grails 1.3.7。
谢谢
附:我添加了我的 toString() 方法(上图),也许我自欺欺人了。
----------更新----------
我删除了我的 toString() 方法,并按照 Rob 的解决方案,即:
all.remove(this)
println "all with ${this} removed: ${all}"
产生:
all is [momentum.Issue : 1, momentum.Issue : 2, momentum.Issue : 3]
all with momentum.Issue : 2 removed: [momentum.Issue : 1, momentum.Issue : 3]
【问题讨论】: