Java按位置获取Object属性

时间:2013-09-22 05:26:55

标签: java object attributes

我有一个对象列表:列表<对象&gt ;.有没有办法按位置获取属性?我想的是:

 for(int i=0 ; i<list.size() ; i++) {
   Object o = list.get(i);
   attribute1 = o.get(1);
 }

2 个答案:

答案 0 :(得分:0)

你可以使用反射来做到这一点:

Object obj = ...
Field[] fields = obj.getClass().getDeclaredFields();

请注意,我们无法保证字段顺序,您可能需要使用getDeclaredField(String fieldName)

Javadoc:#getDeclaredFields()

反思教程:http://docs.oracle.com/javase/tutorial/reflect/

答案 1 :(得分:0)

取决于

如果您按照某些人的建议使用getDeclaredFields(),则字段上没有定义特定的顺序。来自Javadoc

  

返回的数组中的元素没有排序,也没有任何特定的顺序。

对于您的用例,可能对任意排序的位置访问起作用。如果是这样,很好。否则请谨慎使用。您可能需要强制执行自己的订单(例如,在调用getDeclaredFields()后按字母顺序对字段进行排序。)