假设您有不同的雇员,但是每个雇员类别都有一个salary()方法。如何使用薪水()方法制作并放入ArrayList中的这些不同对象?
public void betaalSalarissen(){
for(int counter = 0;werknemers.size()>counter;counter++){
Class objectClass = werknemers.get(counter).getClass();
**objectClass.salaris();** //this won't work, help please!
}
}
public void neemInDienst(Object persoon){ //objects from different classes, different employees
werknemers.add(persoon);
}
最佳答案
此处的快速解决方案是从werknemers.get(counter)``to your
Employee`类(刚刚猜出的类名)转换结果
((Employee)werknemers.get(counter)).salaris();
但从长远来看,您应该将通用参数应用于collection变量和methods参数:
private Collection<Employee> werknemers = new ArrayList<>();
public void neemInDienst(Employee persoon){ //objects from different classes, different employees
werknemers.add(persoon);
}
那么您就可以像ChiefTwoPencils所建议的那样简单地遍历元素而无需强制转换。