这是我在libGDX
的第一个项目,我正在尝试循环com.badlogic.gdx.utils.Array
:
//properties
...
private Array<Item> items;
...
//constructor
...
items = new Array<Item>();
...
//render method
...
for (Item item : items) {
item.update(deltaTime);
}
...
Android 工作室正在突出显示items
,并在悬停时显示消息:
使用非重入迭代器方法:Array.iterator((
每次 LibGDX 集合上的迭代器方法返回相同的迭代器实例 方法被调用。对于嵌套或多线程迭代,创建一个新的 使用适当构造函数的迭代器
我不确定如何解决这个问题,或者这是否只是一种通知类型的错误,以及从长远来看它是否会影响任何事情。
任何想法这是什么以及如何解决它?
就像文档中所说的那样:
请注意,每次调用此方法时都会返回相同的迭代器实例。
因此,如果您从两个不同的线程调用它,则在一个线程中调用 next 将推进另一个线程中的迭代器。
(或者,在同一线程中调用它两次,在一个实例上调用 next 也会推进另一个实例。这本身与线程无关(。
使用 Array.ArrayIterator 构造函数进行嵌套或多线程迭代。
使用new Array.ArrayIterator<>(items)
而不仅仅是items
。