记录一下遇见过的奇怪报错~
正确代码
public class Test<T> {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<T extends Comparable<T>> {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<T extends Comparable<T>> {private T[] test;private int size;Test() {size = 8;test = (T[]) new Comparable[8];}public static void main(String[] args) {Test t = new Test();}}
To be a sailor of the world bound for all ports.