删除对象时出现意外类型错误

时间:2016-11-02 20:21:17

标签: java null unexpectendoffile

我有一个EnemyVehicle对象的ArrayList。它的名字是敌人。当我尝试删除EnemyVehicle类的对象时,就像在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;
        }
    }    
}

我该怎么办?

2 个答案:

答案 0 :(得分:1)

代替enemies.get(i) = null;执行enemies.remove(enemies.get(i));

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

答案 1 :(得分:0)

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

private async void ButtonClick(object sender, RoutedEventArgs e)
{
    if (e.OriginalSource != sender)
    {
        // do nothing if clicked the ToggleSwitch
        e.Handled = true;
    }
    else
    {
        // handle the button click action
        await this.ShowMessageAsync(string.Empty, "Yeah, you clicked the real button!");
    }
}