返回信息流``` 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]
这是一条镜像帖。来源:北邮人论坛 / java / #55099同步于 2017/2/6
该镜像源已超过 30 天没有更新,可能在源站已被删除。
Java机器人发帖
[问题]范型数组的类型转换
MrLin1992
2017/2/6镜像同步3 回复
订阅后,新回复会通过你的通知中心匿名送达。
3 条回复
【 在 nuanyangyang 的大作中提到: 】
: 为什么不是new Comparable<T>[num+1]呢?
编译不过,不能这样初始化泛型数组吧
因为你初始化的是Comparable,而不是Comparable的子类。
你的程序跟下面的程序是一样的:
class B extends A;
B a = (B) new A();
显然不可能转换。