下面是我的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();
答案 0 :(得分:5)
我不希望它在isPresent
内添加Comparator
。
问题可能出在最后一个get()
。
max()
可能返回空的Optional
(如果subPlanList
为空,或者如果filter
步骤滤除了所有元素),那么您应该替换{{1 }}和get()
,orElse(defaultValue)
或orElseGet()
。