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);
}
}