gpt4 book ai didi

java.util.AbstractList$Itr.checkForCommodification 错误

转载 作者:太空宇宙 更新时间:2023-11-04 07:09:01 26 4
gpt4 key购买 nike

每当我尝试删除我的一个实体时,游戏都会给我这个错误,我不知道为什么。

这是产生错误的方法:

public void render (Screen screen) {
int xTile = 11;
int yTile = 0;
int scale = 1;

screen.render (x, y, xTile + yTile * 32, colour, 0, scale);

if (level.player != null) {
int xd = level.player.x - x;
int yd = level.player.y - y;
if (xd * xd + yd * yd < 8 * 8) {
Font.render("Pick up", screen, x - 18, y - 17, Colours.get(-1, -1, -1, 555), 1);
if (item == true) {
Font.render("It's true!", screen, x - 18, y - 17, Colours.get(-1, -1, -1, 555), 1);
level.removeEntity(this);
}
}
}
}

这是removeEntity方法:

public void removeEntity(Entity entity) {
entities.remove(entity);
}

最佳答案

我猜你的其余代码看起来像这样:

for (Entity e : level.entities) {
e.render();
}

这意味着在某个地方,您会在迭代 entities 时调用 level.entities.remove(),这会导致 ConcurrentModificationExceptionCheckForCommodificationError

更简单的解决方案之一是保留一个单独的项目列表,以便在迭代完成后作为一个批处理操作删除:

level.queueRemoveEntity(this);
// .. finish rendering all entities ..
level.entities.removeAll(level.queuedEntities);
level.queuedEntities.clear();

关于java.util.AbstractList$Itr.checkForCommodification 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20925481/

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