ОБНОВЛЕНО
В случае, если вы хотите изменить каждый элемент в списке. Вы можете попробовать этот код:
for(int i = 0; i < foos.size();i++) {
Foo.FooBuilder builder = Foo.builder();
builder.a("bar1");
if(listOfIds.contains(foo.getId())) {
builder.b("bar2");
//TODO: copy other values from `foos.get(i)` to builder. It's your turn
//update modified to the list at i
foos.set(i, builder.build());
}
}
========================
Предположим, что foo
является Foo
объектом. Тогда ваш код не будет скомпилирован. Вам просто нужно установить свойство a
строителя, как мой код. После установки всех свойств в конструкторе Foo
, запустите builder.build()
, чтобы получить foo
.
Foo.FooBuilder builder = Foo.builder();
for(Foo foo: foos) {
builder.a("bar1");
if(listOfIds.contains(foo.getId())) {
builder.b("bar2");
}
foo = builder.build();
}