创建不同对象的实例列表

2022-09-03 09:11:35

我正在尝试创建不同类实例的数组列表。如何在不定义类类型的情况下创建列表?(<Employee>)

List<Employee> employees = new ArrayList<Employee>();
employees.add(new Employee());
Employee employee = employees.get(0);

答案 1

您可以创建一个对象列表,例如 。由于所有类的实现都从类扩展隐式或显式,因此此列表可以保存任何对象,包括 的实例等。List<Object> list = new ArrayList<Object>()java.lang.ObjectEmployeeIntegerString

从此列表中检索元素时,将检索 到 一个,而不是 不再是 ,这意味着在这种情况下,您需要执行显式强制转换,如下所示:ObjectEmployee

List<Object> list = new ArrayList<Object>();
list.add("String");
list.add(Integer.valueOf(1));
list.add(new Employee());

Object retrievedObject = list.get(2);
Employee employee = (Employee)list.get(2); // explicit cast

答案 2
List<Object> objects = new ArrayList<Object>();

objects列表将接受任何Object

您可以按如下方式进行设计

public class BaseEmployee{/* stuffs */}

public class RegularEmployee extends BaseEmployee{/* stuffs */}

public class Contractors extends BaseEmployee{/* stuffs */}

和列表中

List<? extends BaseEmployee> employeeList = new ArrayList<? extends BaseEmployee>();