在java中是不允许直接创建泛型数组等等,如:
public class Test<T> {
private T[] a;
public Test(int cap)
{
a = new T[cap]; //error
}
}
这段代码会在new的代码行出错:Error:(11, 13) java: 创建泛型数组
这时我们就需要强制类型转换:
public class Test<T> { private T[] a; public Test(int cap) { a = (T[]) new Object[cap]; }
}这样编译就通过了。