我有一些代码。它曾经是这样的,
for(Shape s: shapes){
g.setColor(Color.blue);
g.fill(sh);
g.setColor(Color.gray);
g.draw(sh);
}
但它抛出了一个ConcurrentModificationException,所以我把它更改为使用像这样的迭代器,
Iterator<Shape> s = shapes.iterator();
while(s.hasNext()){
Shape sh = s.next();
g.setColor(Color.blue);
g.fill(s);
g.setColor(Color.gray);
g.draw(s);
}
但它仍然会抛出ConcurrentModificationException。也许是因为它在paint方法中调用,但那是因为它是在绘制时。
答案 0 :(得分:2)
它抛出了这个例外,因为在这里有更多的代码&#34;部分,您正在修改(添加或删除)shapes
。
如果您使用迭代器,您可以致电:
s.remove();
但这就是全部。