如何用函数样式的表达式替换if(Optional.isPresent())

时间:2018-08-08 14:59:55

标签: java java-8 java-stream

我有以下代码块:

Optional<Integer> result = //some method that returns an Optional<Integer>;

    if(result.isPresent()) {
        return result.get();
    } else {
        return 0;
    }

,而我的IntelliJ建议我将其替换为函数表达式。我看到ifPresentOrElse()中有一个方法Optional,但是我无法弄清楚在这种特殊情况下如何使用它。

有什么建议吗?谢谢!

1 个答案:

答案 0 :(得分:10)

您想要在这里像orElse()https://docs.oracle.com/javase/9/docs/api/java/util/Optional.html#orElse-T-

Optional<Integer> result = //some method that returns an Optional<Integer>;
return result.orElse(0);