1

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

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;
        }
    }    
}

我能做些什么?

4

2 回答 2

1

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

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

于 2016-11-02T20:25:30.953 回答
0

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

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();
     }
}
于 2016-11-02T20:38:13.283 回答