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"));
推荐阅读
- matplotlib - 如何删除散点图中点之间的空格
- javascript - Firestore:FirebaseError:缺少权限或权限不足
- python - Google-API 和 python 返回属性错误或内存地址
- php - 注意:试图获取非对象的属性“sys_id”
- python - Django - “author_id”列中的空值违反非空约束(图像上传)
- python - 计算条件下的重复次数
- python - 在熊猫数据框中根据日期组合行
- python-3.x - 在 python 中使用 PIPE 运行多个命令
- wordpress - 保存和更新 CPT 的多个术语
- r - 检查日期是否在时间范围内