Java 8 Lambda Optional.ofNullable

时间:2018-07-02 19:44:29

标签: java lambda java-8 optional

我的方法返回:

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

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

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

1 个答案:

答案 0 :(得分:0)

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

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