gpt4 book ai didi

java - Rectangle2D#getCenterY 导致不相关的迭代器抛出 CME

转载 作者:行者123 更新时间:2023-12-01 14:52:39 26 4
gpt4 key购买 nike

我目前正在开发一款多线程游戏,有一个线程运行游戏更新,另一个线程重新绘制正在玩游戏的面板。在编辑了一些负责敌人向玩家发射射弹的代码后,我注意到我从迭代器中收到了 ConcurrentModificationException ,该迭代器正在迭代所有实体并更新它们。我将问题与此声明隔离:

getMyBounds2D().getCenterY();

因为当我将语句更改为:

getMyBounds2D().getY();

更新迭代器不再抛出异常。 getMyBounds2D() 方法仅返回一个代表实体边界框的 Rectangle2D,有没有人可以解释为什么更改上面的语句会导致 CME 以及如何解决此问题?

最佳答案

您不能弄乱 EDT(事件调度线程)之外的 awt/swing 对象。各种 GUI 对象旨在以单线程方式仅由该线程处理。如果您有多个线程处理这些对象,那么这将导致各种问题,其中包括 CME。

关于java - Rectangle2D#getCenterY 导致不相关的迭代器抛出 CME,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14690187/

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