700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > 解决java报错class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.Comparable

解决java报错class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.Comparable

时间:2021-03-29 16:13:39

相关推荐

解决java报错class [Ljava.lang.Object; cannot be cast to class [Ljava.lang.Comparable

记录一下遇见过的奇怪报错~

正确代码

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.

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。