可以说我有
class Person {
String Age;
String Name;
}
Class Employee {
int Salary;
String Name;
}
Run Code Online (Sandbox Code Playgroud)
我在列表中有这些类的各种实例.我已经建立,其接受2个独立的功能List<Person>和List<Employee>和显示的内容.但我想创建一个通用函数,它接受任何对象的List并执行显示部分.
请帮我
谢谢Sunny
And*_*ter 10
最简单的解决方案是让Employee继承自己Person.这很自然,因为员工很可能是一个人.他们甚至分享一些属性,比如Name(你已经在你的代码中拥有)和Age.
class Person {
String Age;
String Name;
}
class Employee extends Person {
int Salary;
// String Name; not needed anymore, inherited from Person
}
Run Code Online (Sandbox Code Playgroud)
然后,只需要一个人员列表就足够了List<Person>,您可以在其中存储两种对象类型.
如果由于任何原因仍需要将它们分开,则可以添加公共父类或接口.理想情况下,将必要的方法(如显示)添加到界面中,让类实现它们:
interface Human {
void showMe();
}
class Person implements Human {
String Age;
String Name;
public void showMe() { System.out.println("I am a Person!"); }
}
class Employee implements Human {
int Salary;
String Name;
public void showMe() { System.out.println("I am an Employee!"); }
}
Run Code Online (Sandbox Code Playgroud)
然后,您可以使用Humans 列表来存储两种对象类型.迭代变得非常简单:
List<Human> humanList = new ArrayList<>();
// ... Populate the list with Persons and Employees
for(Human human : humanList) {
human.showMe();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
96 次 |
| 最近记录: |