泛型上下文中的java.lang.ClassCastException

时间:2020-09-07 20:00:09

标签: java generics casting

我目前正在研究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);
        

    }

0 个答案:

没有答案