var items = job.getItems();
for (var item in items)
job.removeItem(item);
CF / Java抛出
java.util.ConcurrentModificationException 在 java.util.AbstractList中$ Itr.checkForComodification(AbstractList.java:372)
在没有ConcurrentModificationException
的情况下删除所有项目的最简洁方法是什么?
谢谢!
答案 0 :(得分:4)
在job.cfc中,必须实现一个清除项目的方法。
boolean function emptyItems()
{
return arrayClear(variables.items);
}
然后......
job.emptyItems();
ColdFusion arrayClear()
会在下面的Java中调用clear()
。
在ColdFusion中导致数组的唯一方法是按值传递。因此,在getItems()之后清除它不会对job.items
执行任何操作。傻我。
答案 1 :(得分:3)
java List有一个(可选) clear()方法。
然后代码将成为:
job.getItems().clear()
AFAICS coldfusion9使用hibernate作为ORM,hibernate在List抽象上实现了clear,甚至将它转换为数据库的单个DELETE语句。