首页 > 解决方案 > java 8 lambda Optional.ofNullable

问题描述

我的方法返回:

return Optional.ofNullable(solution)
            .map(Solution::getPrice)
            .map(solutionPrice-> BuildPayment(solutionPrice, name))
            .orElse(Mono.just(Price.Builder.create().build()))
            .map(price-> buildProcessResponse(solution, price));

当解决方案为空时,我的方法失败。当我调试时,似乎当解决方案为空时,该方法转到 orElse 并输入最终地图。

如果它为空,我应该如何初始化“解决方案”?

标签: javalambdajava-8optional

解决方案


从您的代码中,很难弄清楚您的代码的最终目的是什么。为了在它为空时创建一个新的解决方案,以下代码段可能会有所帮助:

    return Optional.ofNullable(solution)
            .orElseGet(Solution::new)
            .map(solution -> buildProcessResponse(solution, solution.getPrice()));

推荐阅读