假设我有
class Person {
String Age;
String Name;
}
Class Employee {
int Salary;
String Name;
}
我在列表中有这些类的各种实例。
我创建了 2 个单独的函数来接受 List<Person>
和 List<Employee>
并显示内容。
但我想创建一个通用函数,它接受任何对象的列表并执行显示部分。
请帮帮我
谢谢 晴天
最佳答案
最简单的解决方案是让Employee
继承自 Person
.这是很自然的,因为很可能一个 Employee 是一个人。他们甚至共享一些属性,比如 Name
(您的代码中已有)和 Age
.
class Person {
String Age;
String Name;
}
class Employee extends Person {
int Salary;
// String Name; not needed anymore, inherited from Person
}
然后,有一个人员列表就足够了 List<Person>
,您可以在其中存储两种对象类型。
如果您出于任何原因仍然需要将它们分开,您可以添加一个公共(public)父类或接口(interface)。理想情况下,将必要的方法(如显示)添加到接口(interface)中并让类实现它们:
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!"); }
}
然后您可以使用 Human
的列表s 来存储两种对象类型。迭代变得非常容易:
List<Human> humanList = new ArrayList<>();
// ... Populate the list with Persons and Employees
for(Human human : humanList) {
human.showMe();
}
关于java - 具有不同对象的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15787316/