imp*_*nce 0 java collections java-8 java-stream
我正在尝试将给定产品的所有价格添加为:
BigDecimal getTotalPrice(List<Product> products) {
return products.stream()
.map(Product::getPrice)
.peek(bigDecimal -> System.out.println(bigDecimal))
.reduce(BigDecimal.ZERO, BigDecimal::add);
}
Run Code Online (Sandbox Code Playgroud)
我试着打印所有的值bigDecimal,每当我们得到的价值null,我们正在java.lang.NullPointerException,有没有另外的什么更好的办法java 8,防止任何类型的异常?
我建议添加中间过滤步骤:
return products.stream()
.filter(Objects::nonNull) // If products can contain null values
.map(Product::getPrice)
.filter(Objects::nonNull) // If price can be null
.peek(bigDecimal -> System.out.println(bigDecimal))
.reduce(BigDecimal.ZERO, BigDecimal::add);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
358 次 |
| 最近记录: |