如何创建泛型数组?我不明白泛型和数组之间的联系。我可以用泛型类型创建数组引用:private E[] elements; //GOOD但不能创建具有泛型类型的数组对象:elements = new E[10]; //ERROR但它起作用了:elements = (E[]) new Object[10]; //GOOD
3 回答
蝴蝶刀刀
TA贡献1801条经验 获得超8个赞
LinkedList<T>#toArray(T[])
:
public <T> T[] toArray(T[] a) { if (a.length < size) a = (T[])java.lang.reflect.Array.newInstance( a.getClass().getComponentType(), size); int i = 0; Object[] result = a; for (Node<E> x = first; x != null; x = x.next) result[i++] = x.item; if (a.length > size) a[size] = null; return a;}
Array.newInstance(Class, int)
int
翻过高山走不出你
TA贡献1875条经验 获得超3个赞
new E[10]
new Object[10]
.
E
创建对象数组并将其转换为 E[]
数组,或 使用 Array.newInstance(类组件类型,int长度) 若要创建传入的类型数组的实际实例,请执行以下操作 componentType
装备。
添加回答
举报
0/150
提交
取消