【发布时间】:2021-02-15 22:47:20
【问题描述】:
假设我的类层次结构如下
class Company{
...
}
class Employee extends Company{
...
}
class Interns extends Company{
...
}
class Test{
private List<Employee> employees;
private List<Intern> intern;
// Suppose that multiple objects of Interns and Employees have
been properly initialized and added to the above two Lists accordingly
public void process(List<Company> company){
...
}
}
对于我的process(),我希望能够使用相同的函数而不需要重载(这只是一个示例,我会有更多的类,所以重载可能看起来很长)。
我应该如何处理这两个列表,以便它们可以传递到process()?我试过直接通过它们。但是,显然,Java 不能将List<Employee> 或List<Intern> 直接转换为List<Company>
另外,编写多个重载方法(尽管数量)更好还是尝试转换类型以便一个函数可以全部使用。
【问题讨论】:
-
试试
public void process(List<? extends Company> company){ -
为什么
Employee和Interns扩展Company?员工不是公司。
标签: java