我正在做一个项目,在这个项目中我尝试使用泛型,但我遇到了困难。
假设我有很多汽车,它们都在不同的类中实现(例如 audi.java、toyota.java 等),并且每个汽车都有一个名为 startCar() 的方法。现在我想创建一个类 Cars 让其他类使用这些汽车。但是以下将不起作用。我应该如何实现它?
public class Cars {
private MyCar mycar;
private class MyCar <MySpecificBrandOfCar>{
private MySpeicifBrand mySpecifcCar;
public MyCar(){}
}
public Cars(){
myCar = new myCar<audi>;
}
..other methods..
}
我也试过创建一个界面,但也出现了错误。
谢谢
编辑,尝试 nfechner 的建议
感谢大家的回复!
下面的工作是否可行(注意:GenericCar
是所有汽车(例如audi.java
)实现的接口(interface),并具有诸如 startCar()
public class Car{
private GenericCar mycar;
public Car(){
mycar = new audi();
}
}
最佳答案
不幸的是,泛型不能用于实例化一个类,在 Java 中不行。也许您可以更具体地说明您的意图,但您可能会发现拥有一些基类 Car 并让每辆特定的汽车扩展它很有用。如果在基类Car中定义了startCar()方法,通过多态性,Car的每个子类也会有这个方法。
public class Car{
public void startCar(){ }
}
public class Audi extends Car{}
public class Toyota extends Car{}
等等。
关于Java泛型问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7305207/