以下是我的Java 8代码,当我运行Sonar时,在访问值“”消息之前,我收到“调用” Optional#isPresent()”。请帮我如何为isPresent()
添加subPlan.getTaxWthholding().getFederalTaxDetails().getFederalTaxPercentage().
SubPlan maxSubPlan = subPlanList.stream()
.filter(s -> s.getIsSelected())
.max(Comparator.comparing(subPlan ->
subPlan.getTaxWthholding().getFederalTaxDetails().getFederalTaxPercentage()))
.get();
最佳答案
我不希望您在isPresent
内添加Comparator
。
问题可能是最后的get()
。max()
可能会返回一个空的Optional
(如果subPlanList
为空,或者如果filter
步骤滤除了所有元素),那么您应该将get()
替换为orElse(defaultValue)
,orElseGet()
或orElseThrow()
。