如何过滤流表达式抛出异常?
我有检查列表元素总和的功能,如果总和大于 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/