gpt4 book ai didi

java - 抛出 java.util.ConcurrentModificationException

转载 作者:行者123 更新时间:2023-12-02 05:49:26 25 4
gpt4 key购买 nike

这是我的贪吃蛇游戏代码中的一个函数。基本上我最初是在做一个 for 来浏览 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。例如,如果您重写该方法,则可能会出现这种情况。

关于java - 抛出 java.util.ConcurrentModificationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23709532/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com