Java:为什么不能迭代迭代器?
我读了为什么Java的迭代器不是可迭代的?和为什么枚举不是可迭代的?,但我仍然不明白为什么:
void foo(Iterator<X> it) {
for (X x : it) {
bar(x);
baz(x);
}
}
无法实现。换句话说,除非我错过了什么,否则上述内容可能是很好的,有效的语法糖:
void foo(Iterator<X> it) {
for (X x; it.hasNext();) {
x = it.next();
bar(x);
baz(x);
}
}