Optional导致的 java.util.NoSuchElementException: No value present


在用Java8对集合操作时提示: java.util.NoSuchElementException: No value present

1 例如:
优化前:
2 BigDecimal bigDecimal = salesOrders.stream().map(SalesOrder::getActualPrice).reduce(BigDecimal::add).get();
需要先判断salesOrders.stream().map(SalesOrder::getActualPrice).reduce(BigDecimal::add)的结果是否有值,当没有值的时候调用get()方法就会抛出异常。

所以需要先进行判断
优化后:
BigDecimal totalActualSale = new BigDecimal(0);
Optional<BigDecimal> optionalTotalActualSale = salesOrders.stream().map(SalesOrder::getActualPrice).reduce(BigDecimal::add);
if (optionalTotalActualSale.isPresent()){
totalActualSale = optionalTotalActualSale.get();
}
 

 


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM