Есть ли способ, чтобы нижеприведенное можно было выполнять как один набор потоковых операций, вместо того, чтобы явно проверять, является ли рекомендуемый продукт пустым, затем возвращать список по умолчанию, иначе возвращать отфильтрованный список ?
public List<Product> getRecommendedProducts() {
List<Product> recommendedProducts
= this.newProducts
.stream()
.filter(isAvailable)
.collect(Collectors.toList());
if (recommendedProducts.isEmpty()) {
return DEFAULT_PRODUCTS;
}
return recommededProducts;
}
4
Что не так с вашим существующим кодом?
—
Энди Тернер
@AndyTurner Согласен. Код хорош как есть. Единственное улучшение, которое я бы сделал, это использование тернарного оператора вместо оператора if-else . Это все еще дело вкуса, хотя.
—
ETO
@ETO В этом нет ничего плохого, но я пытался / надеялся выяснить, есть ли способ сделать это, просто используя Stream APIs без явных проверок условий. Спасибо за ответ - мне нравится предложение троичного оператора.
—
user3495691