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

时间:2019-02-26 07:59:36

标签: java java-8 optional

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

1 个答案:

答案 0 :(得分:5)

我不希望它在isPresent内添加Comparator

问题可能出在最后一个get()

max()可能返回空的Optional(如果subPlanList为空,或者如果filter步骤滤除了所有元素),那么您应该替换{{1 }}和get()orElse(defaultValue)orElseGet()