с Java5 мы можем написать:
Foo[] foos = ...
for (Foo foo : foos)
или просто используя Iterable в цикле for. Это очень удобно.
Однако вы не можете написать универсальный метод для повторяемого, как это:
public void bar(Iterable<Foo> foos) { .. }
и вызывая его с массивом, поскольку он не является Iterable:
Foo[] foos = { .. };
bar(foos); // compile time error
Я задаюсь вопросом о причинах этого дизайнерского решения.
java.lang.reflect.Array
, но его производительность слабая. Однако вы можете написать свои собственные итераторы (или реализации List!), Чтобы обернуть массивы примитивных типов, если хотите.