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.