Я читал Почему Итератор Java не является Iterable? и Почему не перечислены Iterable?, но я до сих пор не понимаю, почему это:
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);
}
}