【发布时间】:2012-02-11 23:08:43
【问题描述】:
我有一个带有泛型变量的类。我想将该变量限制为一组 类型(如 Car、Bike、...)如下所示:
class Garage{
Class<K> ownerStaff;
public Garage(Car c){
this.ownerStaff = c;
}
public Garage(Bike b){
this.ownerStaff = b;
}
...
}
所以“genericVariable”只能是汽车、自行车或我想要的任何其他类型,但不是任何东西。我该怎么做?
注意: 我想我可以创建一个父类“Vehicle”,然后这样写(如果我错了,请纠正我)
class Garage<K extends Vehicle>{
Class<K> ownerStaff;
public Garage(Class<K> c){
this.ownerStaff = c;
}
}
但我不想要一个父类并使我所有的类都扩展“Vehicle”,并且可能我不想输入例如Garage<Car> 当我实例化一个“车库”时。
谢谢
【问题讨论】:
-
为什么它必须是通用的?它可以只输入
Vehicle。如果您的类型不共享公共代码,请将Vehicle设为接口而不是类。 -
另外,我认为您的意思是
K不是Class<K>。Class<K>主要用于反射。 -
是的,我可能是说 K。没关系...如果我制作界面 Vehicle 然后我编写第二段代码对吗?我的意思是...车库