【发布时间】:2014-01-26 01:14:34
【问题描述】:
我正在尝试编写一个必须泛化为 Comparable 的 PriorityQueue。这是构造函数:
public class DavidiArrayPriorityQueue <E extends Comparable<E>> implements PriorityQueue<E> {
private E data[];
private int numElements;
//creates an empty priority queue with 10 spaces by default
public DavidiArrayPriorityQueue(){
data= (E[]) new Object[20];
numElements=0;
}
当我用
初始化它时DavidiArrayPriorityQueue<Integer> test=new DavidiArrayPriorityQueue<Integer>();
它抛出 [Ljava.lang.Object;不能转换为 [Ljava.lang.Comparable;
【问题讨论】:
-
确实;
Object不是Comparable。 -
也许你应该使用列表而不是数组?
-
@OliCharlesworth:或者,更重要的是:
Object[]不是Comparable[]。