з Java5 ми можемо написати:
Foo[] foos = ...
for (Foo foo : foos)
або просто за допомогою Iterable в циклі for. Це дуже зручно.
Однак ви не можете записати загальний метод для такого вибору:
public void bar(Iterable<Foo> foos) { .. }
і викликає його масивом, оскільки він не є взаємодіючим:
Foo[] foos = { .. };
bar(foos); // compile time error
Мені цікаво з причин цього дизайнерського рішення.
java.lang.reflect.Array
, але його ефективність є слабкою. Однак ви можете написати власні ітератори (або реалізації Списку!), Щоб обернути масиви примітивних типів, якщо хочете.