问题
Java无法创建泛型类型的数组?
解决方案
使用反射(from: core java volume I)
以下代码展示一个通用的数组拷贝例子,其中的方法可以用于创建泛型数组
public static Object goodCopyOf(Object a, int newLength) {
Class cl = a.getClass();
if (!cl.isArray()) return null;
Class componentType = cl.getComponentType();
int length = Array.getLenght(a);
Object newArray = Array.newInstance(componentType, newLength);
System.arraycopy(a, 0, newArray, 0, Math.min(length, newLength));
return newArray;
}