我在基级类的更新方法中有以下代码:
while(entities.iterator().hasNext()){
if(entities.iterator().next() != null){
entities.iterator().next().update();
Gdx.app.log(Game.LOG, "Updated Entity "+entities.iterator().next().getName()+".");
}
else{
Gdx.app.log(Game.LOG, "Could not update Entity.");
}
}
但是,此语句将在程序运行时冻结程序,并且必须在不提供任何崩溃信息的情况下强制关闭。我可以通过使用 if 语句而不是 while 来停止冻结,但是,它只会更新数组中的第一个实体。
什么可能导致冻结,迭代器如何循环而不导致它?