作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
假设我有一个名为 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/
我是一名优秀的程序员,十分优秀!