¿Por qué una matriz no es asignable a Iterable?
Con Java5 podemos escribir:
Foo[] foos = ...
for (Foo foo : foos)
o simplemente usando un iterable en el bucle for. Esto es muy práctico.
Sin embargo, no puedes escribir un método genérico para iterable como este:
public void bar(Iterable<Foo> foos) { .. }
y llamándolo con una matriz ya que no es un iterable:
Foo[] foos = { .. };
bar(foos); // compile time error
Me pregunto sobre las razones detrás de esta decisión de diseño.