Cómo recorrer una lista anidada en una opción?

Fernando Ania:

Tengo un objeto nodeque tiene un getNodes()método que devuelve una lista, y quiero recorrer esta lista sólo si nodeno es null.

Traté de hacer lo siguiente en el que pensé que podía correlacionar el flujo de la lista y atravesarlo, pero lo que sucede es que se trata de realizar el filtro en el Objeto de flujo y no en el contenido de la lista.

public void updateNode(Node node) {
    List<Node> nodes = Optional.ofNullable(node)
                   .map(node -> Stream.of(node.getNodes))
                   .filter().......orElse()

    // operation on filtered nodes.
    ....

}
también:

En el peor de las opciones de implementación, a la respuesta correcta para colocar un nullsolo cheque tiene las siguientes suplentes disponibles:

Optional.ofNullable(node)
        .map(Node::getNodes)
        .orElse(Collections.emptyList())
        .stream() // Stream of nodes
        .filter(...)

o con Java-9 +

Stream.ofNullable(node)
        .flatMap(nd -> nd.getNodes().stream())
        .filter(...)

Supongo que te gusta

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