我想在遍历对象的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/