Fernando Ania:
Tengo un objeto node
que tiene un getNodes()
método que devuelve una lista, y quiero recorrer esta lista sólo si node
no 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 null
solo 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(...)