关于java泛型
来源:8-3 Prim算法的第一个实现 (Lazy Prim)
慕码人1088981
2018-06-21
public class MinHeap <Item extends Comparable> {
private int count;//堆中的元素个数
private int capacity;//堆的容量
private Item[] data;//堆
public MinHeap(int capacity){
count=0;
this.capacity=capacity;
data=(Item[])new Comparable[capacity+1]; //这里定义数组为什么要这么定义,怎么理解?
}
写回答
1回答
-
也可以定义为:data = (Item[])new Object[capacity + 1]。不管怎样,需要这个类型转换,将Object[]或者Comparable[]转换成Item[]。
由于历史原因,java语言不支持直接申请泛型类型的数组空间,也就是不能直接写data = new Item[capacity + 1],编译器会报错。必须先申请一个具体类型的空间,再做类型转换:)
012018-06-23
相似问题