创建不同对象的实例列表
我正在尝试创建不同类实例的数组列表。如何在不定义类类型的情况下创建列表?(<Employee>)
List<Employee> employees = new ArrayList<Employee>();
employees.add(new Employee());
Employee employee = employees.get(0);
我正在尝试创建不同类实例的数组列表。如何在不定义类类型的情况下创建列表?(<Employee>)
List<Employee> employees = new ArrayList<Employee>();
employees.add(new Employee());
Employee employee = employees.get(0);
您可以创建一个对象列表,例如 。由于所有类的实现都从类扩展隐式或显式,因此此列表可以保存任何对象,包括 的实例等。List<Object> list = new ArrayList<Object>()
java.lang.Object
Employee
Integer
String
从此列表中检索元素时,将检索 到 一个,而不是 不再是 ,这意味着在这种情况下,您需要执行显式强制转换,如下所示:Object
Employee
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
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>();