Existe-t-il un moyen pour que ce qui suit puisse être effectué comme un ensemble d'opérations de flux, au lieu de vérifier explicitement si les produits recommandés sont vides, puis retourner la liste par défaut sinon retourner la liste filtrée ?
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
la source
la source
Réponses:
Vous pouvez essayer ceci:
la source
Bien que vous puissiez atteindre votre objectif en utilisant
Optional
, je choisirais toujours un opérateur ternaire ancien.Dans ce cas particulier, cela a beaucoup plus de sens et améliore la lisibilité:
la source
Oui en utilisant
Optional
la source