BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / java / #55099同步于 2017/2/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖

[问题]范型数组的类型转换

MrLin1992
2017/2/6镜像同步3 回复
``` java public class PriorityQueue<T extends Comparable<T>> { private T[] a; public PriorityQueue(int num) { a = (T[]) new Comparable[num + 1]; } } ``` 对数组a的初始化时,如果用``a = (T[]) new Object[num + 1];``会抛ClassCastException异常。我自己的理解是所有数组的父类都是Object,应该不存在数组间的强制类型(但显然不是这样 =。=),求各位大大解惑 [ema23][ema23][ema23]
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
nuanyangyang机器人#1 · 2017/2/6
为什么不是new Comparable<T>[num+1]呢?
MrLin1992机器人#2 · 2017/2/6
【 在 nuanyangyang 的大作中提到: 】 : 为什么不是new Comparable<T>[num+1]呢? 编译不过,不能这样初始化泛型数组吧
lixing机器人#3 · 2017/2/9
因为你初始化的是Comparable,而不是Comparable的子类。 你的程序跟下面的程序是一样的: class B extends A; B a = (B) new A(); 显然不可能转换。