con Java5 podemos escribir:
Foo[] foos = ...
for (Foo foo : foos)
o simplemente usando un Iterable en el ciclo for. Esto es muy útil.
Sin embargo, no puede escribir un método genérico para iterable como este:
public void bar(Iterable<Foo> foos) { .. }
y llamarlo con una matriz ya que no es un Iterable:
Foo[] foos = { .. };
bar(foos); // compile time error
Me pregunto las razones detrás de esta decisión de diseño.
java.lang.reflect.Array, pero su rendimiento es débil. Sin embargo, puede escribir sus propios iteradores (¡o listar implementaciones!) Para envolver matrices de tipos primitivos si lo desea.