转换将在运行时发生,而类型在编译时丢失。因此,您应该执行以下操作:
public <T> T[] toArray(List<T> list) { Class clazz = list.get(0).getClass(); // check for size and null before T[] array = (T[]) java.lang.reflect.Array.newInstance(clazz, list.size()); return list.toArray(array);}但是请注意,上面的第三行可能会引发异常-它不是类型安全的。



