这个问题在这里已经有答案了:
如何在java中创建泛型数组((31个答案)
上个月关门了。
当我在测试中询问长度时,我得到了一个整数转换错误,我尝试了其他类,比如character而不是integer,但是我得到了相同的错误,java不允许我将object或comparable作为参数化类来编写。
这是一个junit测试用例
public class EDBinaryHeapTest {
@Test
public void constructorTest01() {
EDBinaryHeap<Integer> toCheck = new EDBinaryHeap<Integer>(0);
assertEquals(0, toCheck.numElementos);
assertEquals(0, toCheck.elementos.length);
}
}
这就是我要检查的类
public class EDBinaryHeap<T extends Comparable<T>> implements EDPriorityQueue<T>{
protected T[] elementos;
protected int numElementos;
@SuppressWarnings("unchecked")
public EDBinaryHeap(int numMaxElementos) {
elementos = (T[]) new Comparable[numMaxElementos];
}
}
1条答案
按热度按时间0yycz8jy1#
这里有几个问题:
你不能启动
Comparable
.你的
T
类扩展Comparable
反之亦然。要解决此问题,您可以使用: