我有一个对象列表:列表<对象&gt ;.有没有办法按位置获取属性?我想的是:
for(int i=0 ; i<list.size() ; i++) {
Object o = list.get(i);
attribute1 = o.get(1);
}
答案 0 :(得分:0)
你可以使用反射来做到这一点:
Object obj = ...
Field[] fields = obj.getClass().getDeclaredFields();
请注意,我们无法保证字段顺序,您可能需要使用getDeclaredField(String fieldName)
Javadoc:#getDeclaredFields()
答案 1 :(得分:0)
取决于
如果您按照某些人的建议使用getDeclaredFields()
,则字段上没有定义特定的顺序。来自Javadoc:
返回的数组中的元素没有排序,也没有任何特定的顺序。
对于您的用例,可能对任意排序的位置访问起作用。如果是这样,很好。否则请谨慎使用。您可能需要强制执行自己的订单(例如,在调用getDeclaredFields()
后按字母顺序对字段进行排序。)