с Java5 мы можем написать:
Foo[] foos = ...
for (Foo foo : foos)
или просто используя Iterable в цикле for. Это очень удобно.
Однако вы не можете написать общий метод для итерации следующим образом:
public void bar(Iterable<Foo> foos) { .. }
и вызывая его с массивом, поскольку он не является Итерируемым:
Foo[] foos = { .. };
bar(foos); // compile time error
Мне интересно узнать причины этого решения.