Puede esto ser convertido para transmitir de una sola línea?

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 Streamcon reduce:

MyObject myObject = listofThings.stream()
                                .reduce(new MyObject(),
                                        MyObject::combine,
                                        MyObject::combiner);

donde combineres un MyObjectmétodo que toma otro MyObjectejemplo y lo combina en el objeto actual.

Como alternativa, puede primeros maplos Thingcasos a MyObjectlas instancias, y luego reducir estos casos a una única MyObjectinstancia:

MyObject myObject = listofThings.stream()
                                .map(new MyObject()::combine)
                                .reduce(MyObject::combiner)
                                .orElseGet(MyObject::new);

Supongo que te gusta

Origin http://43.154.161.224:23101/article/api/json?id=223198&siteId=1
Recomendado
Clasificación