我正在用 Java 创建一个游戏,每当我击中时都会投下炸弹space
:
if (key == KeyEvent.VK_SPACE) {
Bomb bomb = new Bomb(xx, yy, ID.Bomb);
handler.addStillEntity(bomb);
}
这是我修改列表的代码Handler.java
:
public void addStillEntity(Entity entity) {
stillEntities.add(entity);
}
stillEntities
是一个列表:
public List<Entity> stillEntities = new ArrayList<>();
render()
问题是当列表被修改时,我运行了显示游戏的方法:
public void render(Graphics g) {
for (Entity entity : stillEntities) { // line 21
entity.render(g);
}
第 21 行是我得到Exception in thread "Thread-0" java.util.ConcurrentModificationException
. 我知道 Java 不允许在迭代时修改列表,但我还没有想出其他方法来将新实体 Bomb 添加到游戏中。我能做些什么来避免ConcurrentModificationException
?