with Java5 we can write:
Foo[] foos = ...
for (Foo foo : foos)
or just using an Iterable in the for loop. This is very handy.
However you can't write a generic method for iterable like this:
public void bar(Iterable<Foo> foos) { .. }
and calling it with an array since it is not an Iterable:
Foo[] foos = { .. };
bar(foos); // compile time error
I'm wondering about the reasons behind this design decision.