con Java5 possiamo scrivere:
Foo[] foos = ...
for (Foo foo : foos)
o semplicemente usando un Iterable nel ciclo for. Questo è molto utile.
Tuttavia non è possibile scrivere un metodo generico per iterable in questo modo:
public void bar(Iterable<Foo> foos) { .. }
e chiamandolo con un array poiché non è Iterable:
Foo[] foos = { .. };
bar(foos); // compile time error
Mi chiedo i motivi alla base di questa decisione progettuale.
java.lang.reflect.Array
, ma le sue prestazioni sono deboli. Tuttavia, puoi scrivere i tuoi iteratori (o le implementazioni di Elenco!) Per avvolgere array di tipi primitivi, se lo desideri.