java - 在流中按条件抛出异常

如何过滤流表达式抛出异常?

我有检查列表元素总和的功能,如果总和大于 1 -> 抛出异常

Double sum = list.stream().map(element::getNumber).reduce(0.0,Double::sum);
if(sum>1){
   throw new Exception("message);
}

是否可以将 if 条件添加到流表达式以摆脱额外的 if 条件?

最佳答案

您可以使用单个参数 Stream.reduce()Optional.orElseThrow()

list.stream()
    .map(element::getNumber)
    .reduce(Double::sum)
    .filter(sum -> sum <= 1)
    .orElseThrow(() -> new Exception("message"));

https://stackoverflow.com/questions/67315572/

相关文章:

flutter - 为什么 SliverFillRemaining 膨胀得太多了?

matlab - 如何使用 matlab 正确绘制矢量线性方程?

svg - 如何配置在 sveltekit 中使用 svg 文件?

c++ - 使用具有非 constexpr 值的 int 模板函数

http - 使用 Clack/ningle 在 Web 服务器中嵌入图像

python - 仅当 "Lossless"时才转换为整数?

python - 将带有项目列表的字典转换为 Pandas 数据框

r - 将字符串拆分为单词并分配给新列

python - PyCharm 看不到项目中的文件

powerbi - Multi-Tenancy 场景下如何访问power BI Service