我目前正在研究Java中的泛型。到目前为止,我尝试重建一个名为“ Liste”(德语)的ArrayList类,然后尝试实现泛型,这样我的列表可以容纳不同的对象,但还可以提供类型安全性。
在我的实现中,当我尝试将ClassCastException
数组强制转换为Object
(在本例中为U
)数组时,抛出Car
。我唯一不了解的是,当我不指定特定界限(U extends Car
)时,代码会编译。如果删除界限,则代码将编译,并且一切正常。
public class CarListe<U extends Car> { // doesn't work with bound Car
private U[] array;
private int capacity;
public CarListe(int capacity) {
this.array = (U[]) new Object[capacity]; // the error ocurs in this line
}
}
现在实例化CarListe对象
public static void main(String[] args) {
CarListe<Car> pkwCarListe = new CarListe<Car>(100);
}