2013-03-21 119 views
0

我想将一个对象的所有元素添加到ArrayList中。对象的元素是不同类型的。如何通过for循环在Arraylist中添加对象的单个元素?

例如对象Employee具有像emp_id,名称,地址,DOB等属性。

我想将每个属性作为一个对象存储在ArrayList中。像,

ArrayList[1] = Employee.emp_id 
ArrayList[2] = Employee.name 
ArrayList[3] = Employee.address 

我想动态地做到这一点。就像以后一样,在这个对象中添加更多的属性,而不需要手动工作。有没有办法创建一个数组List?

+0

,如果你不知道字段的数量,你可以去使用反射所有字段添加。有关反射的更多信息,请参见[here](http://docs.oracle.com/javase/tutorial/reflect/member/fieldValues.html) – niculare 2013-03-21 21:41:33

回答

0

ArrayList必须是相同的类型。由于Java中的所有对象都扩展了Object,因此可以在其中执行所做的操作。但是,如果您尝试在数组列表中存储不同的对象类型,则这是不可能的。

你可能知道第一部分,在你的文章中有点不清楚。

下面介绍如何使用反射对象做到这一点:

//make sure you import java.lang.reflect.* 

public void addMyFields(Employee e){ 
    ArrayList<Object> list = new ArrayList(); 
    for (Field field : emp.getClass().getDeclaredFields()) 
    { 
     field.setAccessible(true); 
     list.add(field.get(emp); 
    }  
} 
相关问题