在迁移其他项目并使用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();
}