开发者社区> 问答> 正文

有没有一种方法可以结合Java8 Optional返回值和在null上打印消息?

我从以下代码开始:

String startingValue = getMyValue();
String finishingValue = "";
if (startingValue != null) {
    finishingValue = startingValue;
} else {
    System.out.println("Value was null");
}

我想使用Java 8选项将其转换为如下形式:

Optional<String> startingOptional = getMyOptional();
String finishingValue =
        startingOptional
                .map(value -> value)
                .orElse(System.out.println("value not found"));

我的问题是:有没有办法结合Java8 Optional返回值和在null上打印消息?

展开
收起
几许相思几点泪 2019-12-29 20:22:39 1020 0
1 条回答
写回答
取消 提交回答
  • 用途orElseGet:

    Optional<String> startingOptional = getMyOptional();
    String finishingValue = startingOptional.orElseGet(() -> {
        System.out.println("value not found");
        return "";
    });
    
    

    使用.map(value -> value)是没有用的:将值转换为自身不会改变任何事情。

    2019-12-29 20:23:12
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关电子书

更多
Spring Cloud Alibaba - 重新定义 Java Cloud-Native 立即下载
The Reactive Cloud Native Arch 立即下载
JAVA开发手册1.5.0 立即下载