我正在尝试将对象的所有元素添加到ArrayList中。对象的元素属于不同类型。
e.g。对象具有emp_id,name,address,DOB等属性的Employee。
我想将每个属性存储为ArrayList中的对象。像,
ArrayList[1] = Employee.emp_id
ArrayList[2] = Employee.name
ArrayList[3] = Employee.address
我想动态地做。就像,将来在此对象中添加更多属性,而无需进行手动操作。有没有办法创建一个数组列表?
答案 0 :(得分:0)
ArrayList必须是同一类型。您可以拥有一个类型的ArrayList,您可以在其中执行您正在执行的操作,因为Java中的所有对象都扩展了Object。但是,如果您尝试在arraylist中存储不同的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);
}
}