Czy jest jakiś sposób, aby poniższe czynności można było wykonać jako jeden zestaw operacji strumieniowych, zamiast jawnie sprawdzać, czy zalecane Produkty są puste, a następnie zwracać domyślną listę, inaczej zwracać filtrowaną listę ?
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
użytkownik3495691
źródło
źródło
Odpowiedzi:
Możesz spróbować:
źródło
Chociaż możesz osiągnąć swój cel za pomocą
Optional
, nadal wybrałbym zwykły stary operator trójskładnikowy.W tym konkretnym przypadku ma to większy sens i poprawia czytelność:
źródło
Tak, używając
Optional
źródło