Natley:
Cómo llamar orElse
cuando en uno de los map
pasos que consiguen la lista vacía?
MyObj myObj = new MyObj();
myObj.setAaa("aaa");
myObj.setBbb("bbb");
List<MyObj> myObjects = Arrays.asList(myObj);
Optional<List<MyObj>> opt = Optional.ofNullable(myObjects);
List<MyObj> result = opt
// .filter(el -> !returnEmptyList().isEmpty(el))
.map(el -> returnEmptyList(el))
.map(...)
.map(...)
.orElse(myObjects);
Cómo asegurarse de que voy a llegar orElse
cuando en mi map
paso, el resultado es una lista vacía?
Acerco con mis obras de paso del filtro, pero no quiero que llamar returnEmptyList()
dos veces.
también:
Si la map
operación se puede devolver una lista vacía, se puede colocar un filter
antes orElse
como:
.map() // this can return an empty list
.filter(l -> !l.isEmpty())
.orElse(<return some default value>);
// if the list is empty, it would evaluate to Optional.empty() and return via orElse