在Java 8 Comparator中添加Optional.isPresent()

Sel*_*vin 3 java optional java-8

下面是我的Java 8代码,当我运行Sonar时,我在访问值之前得到" Call"可选#isPresent() "消息.请帮我如何添加isPresent()为subPlan.getTaxWthholding().getFederalTaxDetails().getFederalTaxPercentage().

SubPlan maxSubPlan = subPlanList.stream()
    .filter(s -> s.getIsSelected())
    .max(Comparator.comparing(subPlan ->
         subPlan.getTaxWthholding().getFederalTaxDetails().getFederalTaxPercentage()))
    .get();
Run Code Online (Sandbox Code Playgroud)

Era*_*ran 5

我认为它不希望你在isPresent里面添加Comparator.

问题可能是最后一个问题get().

max()可以返回一个空Optional(如果subPlanList是空的,或者如果该filter步骤过滤掉了所有元素),那么你应该替换get()为orElse(defaultValue),orElseGet()或者orElseThrow().