以下是我的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()

09-04 20:17