Georg:
Me pregunto si esto se podría escribir más claramente como una función de corriente:
MyObject myObject = new MyObject();
for (Thing thing : listofThings) {
myObject = myObject.combine(thing);
}
Eran :
Sí, utilizando una Stream
con reduce
:
MyObject myObject = listofThings.stream()
.reduce(new MyObject(),
MyObject::combine,
MyObject::combiner);
donde combiner
es un MyObject
método que toma otro MyObject
ejemplo y lo combina en el objeto actual.
Como alternativa, puede primeros map
los Thing
casos a MyObject
las instancias, y luego reducir estos casos a una única MyObject
instancia:
MyObject myObject = listofThings.stream()
.map(new MyObject()::combine)
.reduce(MyObject::combiner)
.orElseGet(MyObject::new);