记录一下遇见过的奇怪报错~
正确代码
public class Test{ private T[] test; private int size; Test() { size = 8; test = (T[]) new Object[8]; } public static void main(String[] args) { Test t = new Test(); } }
当泛型变量T没有继承Comparable的时候,使用如下方式初始化泛型数组是可行的:
test = (T[]) new Object[8];
错误代码
public class Test> { private T[] test; private int size; Test() { size = 8; test = (T[]) new Object[8]; } public static void main(String[] args) { Test t = new Test(); } }
但如果我们想要对T的值进行比较,T extends Comparable的时候,再使用上述方法初始化就会报错:
在网上查了一下,可以用下面的方式初始化继承了Comparable的泛型数组
正确代码
public class Test> { private T[] test; private int size; Test() { size = 8; test = (T[]) new Comparable[8]; } public static void main(String[] args) { Test t = new Test(); } }



