ด้วย Java5 เราสามารถเขียน:
Foo[] foos = ...
for (Foo foo : foos)
หรือเพียงแค่ใช้ Iterable ใน for for loop มันมีประโยชน์มาก
อย่างไรก็ตามคุณไม่สามารถเขียนวิธีทั่วไปสำหรับการทำซ้ำเช่นนี้:
public void bar(Iterable<Foo> foos) { .. }
และเรียกมันด้วยอาเรย์เนื่องจากมันไม่ใช่ Iterable:
Foo[] foos = { .. };
bar(foos); // compile time error
ฉันสงสัยเกี่ยวกับเหตุผลที่อยู่เบื้องหลังการตัดสินใจออกแบบนี้
java.lang.reflect.Array
แต่ประสิทธิภาพการทำงานจะอ่อนแอ อย่างไรก็ตามคุณสามารถเขียนตัววนซ้ำของคุณเอง (หรือใช้งานรายการ!) เพื่อตัดอาร์เรย์ประเภทดั้งเดิมหากคุณต้องการ