![](/img/trans.png)
[英]JFreeChart throws java.util.ConcurrentModificationException
[英]Throws java.util.ConcurrentModificationException
所以這是我的蛇游戲代碼的功能。 基本上我最初做的是通過LinkedList<Point>
來獲取蛇但是因為它拋出了異常,我認為使用迭代器更改它會有所幫助。 顯然不是。 我怎樣才能解決這個問題?
public void drawSnake(Graphics g) {
g.setColor(Color.green);
Iterator<Point> iterator = snake.iterator();
while(iterator.hasNext()){
Point p =iterator.next();
g.fillRect(p.x * BOX_WIDTH, p.y * BOX_HEIGHT, BOX_WIDTH, BOX_HEIGHT);
}
g.setColor(Color.black);
}
通常,在迭代迭代時修改集合時會發生此異常。 很可能這意味着在另一個線程中修改了snake
。 這個代碼是獨立考慮的,不應該拋出CME,所以這是剩下的唯一可能的解釋。
嘗試查找snake
變量的所有用法,並分析它們是否可以與您發布的代碼一起完成。
另一個非常非常不同的可能性是g.fillRect()
方法從snake
集合中刪除p
。 例如,如果您覆蓋了該方法,則可以進行此操作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.