Existe alguma maneira de que o abaixo possa ser executado como um conjunto de operações de fluxo, em vez de verificar explicitamente se recommendedProducts está vazio e retornar a lista padrão ou retornar a 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
user3495691
fonte
fonte
Respostas:
Você pode tentar isso:
fonte
Embora você possa alcançar seu objetivo usando
Optional
, eu ainda optaria por um operador ternário antigo e simples.Nesse caso em particular, faz muito mais sentido e melhora a legibilidade:
fonte
Sim usando
Optional
fonte