迭代器变量Oracle文档出现问题



我正在浏览For-Each Loop的Oracle文档,其中提到了

迭代器变量在每个循环中出现三次:这是两次出错的机会。

为什么有两次出错的机会?

它与以下代码片段有关:

void cancelAll(Collection<TimerTask> c) {
for (Iterator<TimerTask> i = c.iterator(); i.hasNext(); )
i.next().cancel();
}

据说,当您在迭代器声明(i.hasNext()i.next()(之后引用迭代器时,您可能会意外地引用范围内的其他迭代器变量,或者省略其中一个,或者在循环中多次调用i.next(),等等。

相比之下,每个循环一个:

void cancelAll(Collection<TimerTask> c) {
for (TimerTask t : c)
t.cancel();
}

您没有引用迭代器(不能引用它(,所以您不能犯同样的错误。

最新更新