我试图通过标签一般地获取车辆。为什么我不能使用泛型Collection
来获取车辆?CarTypeTags
andTruckTypeTags
是CarType
类和类的哈希图,从字符串(标签)索引TruckType
扩展而来。VehicleType
有没有办法让我将分配给类型集合的汽车或卡车归还?
奖励:是否clazz.getClass()
将调用者的类返回到此方法?
public <T> Collection<T> getVehicleByTag(String tag) {
T clazz;
Collection<T> types;
if (clazz.getClass() == Car.class) {
types = (CarTypeTags.get(tag)); // error here: type mismatch
} else if (clazz.getClass() == Truck.class) {
types.addAll(TruckTypeTags.get(tag)); // error here too
}
if (types != null) {
return types;
}
return new ArrayList<T>();
}