在迁移其他项目并使用sonarQube进行规范扫描的时候出现了
Call “Optional#isPresent()” before accessing the value.
解决:这是因为在获取到之前避免空值;
修改前代码:
BigDecimal totalAmount = feeList.stream().map(FeeDetailDTO::getTotalAmount).reduce(BigDecimal::add).get();
修改后代码
Optional<BigDecimal> totalAmountOptional = feeList.stream().map(FeeDetailDTO::getTotalAmount).reduce(BigDecimal::add);BigDecimal totalAmount = null;
if (totalAmountOptional.isPresent()) {totalAmount = totalAmountOptional.get();
}