我有一个抽象类Vehicle
有2子类实现RedVehicle
和YellowVehicle
。
在另一类我有一个List<Vehicle>
含有两种子类的实例。 我希望能够进入一个方法的类类型,然后使用该类型来决定我想在做一些事情来哪些对象的集合List
。
由于Class
是通用的,我应该用什么参数化它,但是把参数作为父类Vehicle
停止调用代码,因为工作exampleMethod
现在期待一个类型的车辆,而不是一个子类RedVehicle
或YellowVehicle
。
我觉得应该是一个干净的方式做,所以这将是实现功能的正确方法?
注:我不必在通过Class
类型,如果有更好的建议,我很乐意去尝试的。
调用代码:
service.exampleMethod(RedVehicle.class);
service.exampleMethod(YellowVehicle.class);
字段/方法:
//List of vehicles
//Vehicle has 2 subclasses, RedVehicle and YellowVehicle
private List<Vehicle> vehicles;
//Having <Vehicle> as the Class parameter stops the calling code working
public void exampleMethod(Class<Vehicle> type)
{
for(Vehicle v : vehicles)
{
if(v.getClass().equals(type))
{
//do something
}
}
}