Gibt es eine Möglichkeit, dass das Folgende als ein Satz von Stream-Operationen ausgeführt werden kann, anstatt explizit zu prüfen, ob empfohlene Produkte leer sind, und dann die Standardliste zurückzugeben, andernfalls die gefilterte Liste zurückzugeben ?
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
quelle
quelle
Antworten:
Sie können dies versuchen:
quelle
Während Sie Ihr Ziel mit erreichen könnten
Optional
, würde ich mich immer noch für einen einfachen alten ternären Operator entscheiden.In diesem speziellen Fall ist es viel sinnvoller und verbessert die Lesbarkeit:
quelle
Ja mit
Optional
quelle