¿Hay alguna manera de que lo siguiente se pueda realizar como un conjunto de operaciones de flujo, en lugar de verificar explícitamente si los productos recomendados están vacíos y luego devolver la lista predeterminada o devolver la lista filtrada ?
public List<Product> getRecommendedProducts() {
List<Product> recommendedProducts
= this.newProducts
.stream()
.filter(isAvailable)
.collect(Collectors.toList());
if (recommendedProducts.isEmpty()) {
return DEFAULT_PRODUCTS;
}
return recommededProducts;
}
java
collections
java-8
java-stream
optional
usuario3495691
fuente
fuente
Respuestas:
Puedes probar esto:
fuente
Si bien podría lograr su objetivo utilizando
Optional
, todavía optaría por el antiguo operador ternario.En este caso particular, tiene mucho más sentido y mejora la legibilidad:
fuente
Si usando
Optional
fuente