【发布时间】:2020-08-12 06:31:27
【问题描述】:
我有一个使用嵌套流的场景。 PFB 代码:
list.parallelStream()
.filter(item -> productList.parallelStream()
.anyMatch(product -> product.getProductName().equals(item.getProductName())
&& item.getQuantity() <= product.getAvailableQuantity()));
在这里,我试图根据 productnames 进行过滤,它工作得非常好,但我需要在任何匹配中添加一个 else 条件。如果没有找到匹配项,我需要抛出错误“product not found”。我尝试使用ifPresentOrElse,但它需要Consumer 接口作为返回void 的参数(但在我的情况下它必须返回一个布尔值)。任何帮助表示赞赏。
谢谢。
【问题讨论】:
-
你试过
orElseThrow吗? -
我不能使用带有布尔值的 orElseThrow 对吗?如何将其合并到我的代码中?
-
"throw" 抛出异常类型,不能“抛出”布尔值。
-
我的意思是 orElseThrow 与 Optional 对象一起使用,但就我而言,我该如何使用它
-
findAny(...).orElseThrow(...)而不是anyMatch
标签: java java-8 java-stream