如何更改列表中bean的属性值?

时间:2010-08-24 07:23:12

标签: java list javabeans

我有一个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' );这就是我现在正在做的事情 我想知道有没有其他方法可以做到这一点。

2 个答案:

答案 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");
}

(两者内部几乎完全相同)