Как изменить значение атрибута бина в списке? - PullRequest
1 голос
/ 24 августа 2010

У меня есть список бинов, теперь я хочу изменить значение атрибута всех бинов в списке.Например:

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 ]

2 голосов
/ 24 августа 2010

К сожалению, даже используя рефлексию, вам придется перебирать свой список.Как следствие, насколько я знаю, другого решения для этого нет.

1 голос
/ 24 августа 2010

Это преимущество динамических языков, таких как 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");
}

(оба они в значительной степени одно и то же)

...