gpt4 book ai didi

Java 泛型示例 - 我不明白吗?

转载 作者:行者123 更新时间:2023-12-01 16:38:10 24 4
gpt4 key购买 nike

假设我有一个名为 Car 的类(class)在另一个类中(名称并不重要)我想创建一个通用 vector ,它可以容纳类型 Car 。但是,我显然希望这个 vector 使用泛型,因此类似于 Vector<E> myVector等等。假设类(class)Car有一个方法getCarMake() .

如果我有以下内容:

    public class myClass<E> {

Vector<E> myVector = new Vector<E>();

for(i=0; i<myVector.size(); i++){
Car tempCar = myVector.get(i);
sysout(tempCar.getCarMake());
}

当我改变Car tempCar时至E tempCar ,它不允许我打电话 tempCar.getCarMake()不执行 Car 类型的强制转换上tempCar ??当然有一些解决办法,或者它不会很通用?

我想要:

for(i=0; i<myVector.size(); i++){
E tempCar = myVector.get(i);
sysout(tempCar.getCarMake());
}

最佳答案

您可以像这样简单地创建您的Vector

Vector<Car> myVector = new Vector<Car>();

顺便说一句,如果你使用的是最近的 Java(大约 8 年以下) (愚蠢的我,这是一个泛型问题,当然你是) 最好使用 ArrayList(如果您需要线程安全,请将其包装在 Collections.synchronizedList 中,但我认为您不需要)。

更新:我看到您已经编辑了问题。这里的答案只是将您的类声明更改为

public class myClass<E extends Car> {

关于Java 泛型示例 - 我不明白吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7069794/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com