Есть ли способ, чтобы нижеприведенное можно было выполнять как один набор потоковых операций, вместо того, чтобы явно проверять, является ли рекомендуемый продукт пустым, затем возвращать список по умолчанию, иначе возвращать отфильтрованный список ?
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
источник
источник
Ответы:
Вы можете попробовать это:
источник
Хотя вы могли бы достичь своей цели с помощью
Optional
, я бы по-прежнему выбрал простой старый троичный оператор.В этом конкретном случае это имеет больше смысла и улучшает читабельность:
источник
Да с помощью
Optional
источник