创建不同对象的实例列表

myp*_*lat 11 java arrays class arraylist object

我想创建一个不同类实例的arraylist.如何在不定义类类型的情况下创建列表?(<Employee>)

List<Employee> employees = new ArrayList<Employee>();
employees.add(new Employee());
Employee employee = employees.get(0);
Run Code Online (Sandbox Code Playgroud)

Fra*_*eth 18

您可以创建一个Object列表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
Run Code Online (Sandbox Code Playgroud)


Jig*_*shi 8

List<Object> objects = new ArrayList<Object>();
Run Code Online (Sandbox Code Playgroud)

objects 列表将接受任何 Object

你可以设计如下

public class BaseEmployee{/* stuffs */}

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

public class Contractors extends BaseEmployee{/* stuffs */}
Run Code Online (Sandbox Code Playgroud)

并在列表中

List<? extends BaseEmployee> employeeList = new ArrayList<? extends BaseEmployee>();
Run Code Online (Sandbox Code Playgroud)