【发布时间】:2020-02-05 03:57:53
【问题描述】:
有什么办法可以让下面的操作作为一组流操作执行,而不是显式检查如果推荐产品为空则返回默认列表,否则返回过滤后的列表?
public List<Product> getRecommendedProducts() {
List<Product> recommendedProducts
= this.newProducts
.stream()
.filter(isAvailable)
.collect(Collectors.toList());
if (recommendedProducts.isEmpty()) {
return DEFAULT_PRODUCTS;
}
return recommededProducts;
}
【问题讨论】:
-
你现有的代码有什么问题?
-
@AndyTurner 同意。代码很好。我要做的唯一改进是使用 三元运算符 而不是 if-else 语句。不过,这仍然是一个品味问题。
-
@ETO 没有错,但我试图/希望找出是否有一种方法可以仅通过使用流 API 而不进行显式条件检查。感谢您的回复 - 我喜欢三元运算符的建议。
标签: java collections java-8 java-stream optional