【发布时间】:2014-12-20 13:46:27
【问题描述】:
所以在一家手机公司,我几乎没有不同类类型的向量,比如说:
Vector<Employee>
Vector<Customer>
Vector<Device>
我也有一些类实现的接口很少。所以我想在主类中创建一个静态函数来更新给定的“可更新”向量。它可以是客户或员工,其类型的任何向量都可以是可更新的(实现相同的接口)。 我这样做了:
public static int updateRates(Vector v) {
int sum = 0;
for (int i = 0; i < v.size(); i++) {
if (((Update)v.get(i)).update() == true)
sum++;
}
return sum;
}
这行得通,但我想避免使用强制转换。有没有办法通过任何多态方式应用它?
【问题讨论】:
-
所以
updateRates应该采用任何Vector<? extends Update>和Employee、Customer和Device都实现Update? -
它将接收其类型实现可更新的任何向量。因此它将遍历向量元素并返回更新了多少类型。
-
那么rafalopez79' answer 应该可以解决问题。
标签: java vector interface polymorphism