30
วิธีการสร้างอาร์เรย์ทั่วไปใน Java?
เนื่องจากการใช้งานจาวา generics คุณไม่สามารถมีรหัสเช่นนี้: public class GenSet<E> { private E a[]; public GenSet() { a = new E[INITIAL_ARRAY_LENGTH]; // error: generic array creation } } ฉันจะใช้สิ่งนี้ในขณะที่รักษาความปลอดภัยประเภทได้อย่างไร ฉันเห็นวิธีแก้ไขปัญหาในฟอรัม Java ที่เป็นเช่นนี้: import java.lang.reflect.Array; class Stack<T> { public Stack(Class<T> clazz, int capacity) { array = (T[])Array.newInstance(clazz, capacity); } private final T[] array; } แต่ฉันไม่เข้าใจว่าเกิดอะไรขึ้น