使用 reduce(BigDecimal::add) 报null 错误
时间: 2024-03-08 20:48:19 浏览: 214
BigDecimal使用
使用 reduce(BigDecimal::add) 报 null 错误可能是因为你的集合中有 null 元素。这样的话,reduce 会抛出空指针异常。你可以在 reduce 前过滤掉 null 元素,或者将 null 元素转换为 BigDecimal.ZERO。例如:
```
List<BigDecimal> list = Arrays.asList(BigDecimal.ONE, BigDecimal.TEN, BigDecimal.ZERO, null);
BigDecimal sum = list.stream()
.filter(Objects::nonNull)
.reduce(BigDecimal.ZERO, BigDecimal::add);
System.out.println(sum); // 输出11
```
在上述代码中,我们使用 filter 方法来过滤掉 null 元素,然后使用 reduce 方法将所有元素相加,初始值为 BigDecimal.ZERO。这样就能够避免空指针异常了。
阅读全文