删除对象时发生意外类型错误

Unexpected type error while deleting an object

我有一个 EnemyVehicle 对象的 ArrayList。它的名字是敌人。当我尝试删除 EnemyVehicle class 的对象时,就像在 question 中一样,我收到意外的类型错误:

required: valuable
found: value

这是我的代码:

private void enemiesTurn()
{
    for(int i = 0; i<enemies.size(); i++)
    {
        if(enemies.get(i).isDestroyed())
        {
            enemies.add(getNewRandomVehicle(difficulty));
            p1.setScore(p1.getScore() + 20);
            enemies.get(i) = null;
        }
    }    
}

我能做什么?

而不是 enemies.get(i) = null;enemies.remove(enemies.get(i));

编辑:这是因为 enemies.get(i) 是一个值,而不是一个变量,您不能在操作的左侧使用它。操作的左侧必须以某种方式包含变量。

当您从 ArrayList 或任何列表类型中删除内容时。你应该使用迭代器。

for (Iterator<ClassName> it = enemies.iterator(); it.hasNext();) {
     ClassName objectName = it.next();
     if(objectName.isDestroyed()) {
            enemies.add(getNewRandomVehicle(difficulty));
            p1.setScore(p1.getScore() + 20);
            it.remove();
     }
}