我有一个bean列表,现在我想更改列表中所有bean的属性值。例如:
class Person{
String name;
int age;
String attrXYZ;
/* accessors and mutators */
}
List<Person> lstPerson = getAllPersons();
//set the attribute attrXYZ of all persons in the list to 'undefined'
一种方法是迭代列表并调用setAttrXYZ ( 'undefined' );
这就是我现在正在做的事情
我想知道有没有其他方法可以做到这一点。
答案 0 :(得分:2)
不幸的是,即使使用反射,您也必须遍历列表。因此,据我所知,没有其他解决办法。
答案 1 :(得分:1)
这是像groovy这样的动态语言的优势,你可以将它作为一个单行代码来实现:
myList.each{ it.setAttrXYZ ( 'undefined' ) }
在java中,最简单的方法是使用java 5循环或迭代器:
for(MyBean bean : list){
bean.setAttrXYZ ( "undefined" );
}
或
Iterator<MyBean> it = list.iterator();
while(it.hasNext()){
it.next().setAttrXYZ("undefined");
}
(两者内部几乎完全相同)