我有这段代码:
void remove(){
boolean allowRemove = false;
violations.each{
if(it.selected) allowRemove = true;
}
if(!allowRemove) throw new Exception("No item selected!");
if(allowRemove){
def templist = violations;
templist.each{ if(it.selected) templist.remove(it) }
violations = templist;
tableHandler.reload();
}
}
每次执行此代码时,我的应用程序都会抛出错误: java.util.ConcurrentModificationException
。我找到了如何使用 Iterator
在 Java 中解决此问题的答案。但我不知道如何在 Groovy
中对其进行编码。有什么想法吗?
答案 0 :(得分:3)
使用templist.removeAll{it.selected}
编辑:这适用于Groovy 1.7.4:
class Test {
static void main(String[] args) {
def c = [1, 2, 3, 4, 5]
c.removeAll { it % 2 == 0 }
println c
}
}
答案 1 :(得分:2)
不就是这样做
violations = violations.findAll { !it.selected }