我想在遍历对象的ArrayList的for循环中重新分配一个变量。但是,无论我如何尝试,似乎都没有任何效果。基本上我的代码看起来像这样:

for (int i = 0; i < enemies.size(); i++) {
    AbstractEnemy enemy = enemies.get(i);

    if (enemy.intersects(bullet)) {
        enemy.getsHit(bullet.getDamage());
        bulletList.remove(bullet);
        if (enemy.isDead()) {

            // This does not work
            enemy = new ExplodingEnemy(enemy.x, enemy.y);

        }
    }
}

我究竟做错了什么?

最佳答案

创建新敌人没有任何效果,因为您正在将敌人对象分配给一个临时变量,且其生存期仅限于单循环迭代。如果要将敌人对象存储在敌人列表中,则需要添加一个set方法调用,如下所示:

enemy = new ExplodingEnemy(enemy.x, enemy.y);
enemies.set(i, enemy);

这会将代表敌人的旧对象替换为您刚创建的对象。

关于java - 在for循环中的List中重新分配变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/17896908/

10-10 08:55