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