加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Java > 正文

java-8 – 三个可能的java8可选值 – 如何干净地返回任何存在的

发布时间:2020-12-15 04:47:49 所属栏目:Java 来源:网络整理
导读:参见英文答案 Chaining Optionals in Java 8????????????????????????????????????5个 我有三个java8 Optionals,并希望返回以首选顺序实际存在的任何一个.似乎应该有一种简单的方法来链接它们: return optionalA.orElseIfPresent(optionalB).orElseIfPresen
参见英文答案 > Chaining Optionals in Java 8????????????????????????????????????5个
我有三个java8 Optionals,并希望返回以首选顺序实际存在的任何一个.似乎应该有一种简单的方法来链接它们:

return optionalA.orElseIfPresent(optionalB).orElseIfPresent(optionalC);

如果这三个都是空的,那么应该返回一个Optional.empty().

现有的orElse和orElseGet并没有真正完成任务 – 它们必须返回一个实际值,因此剩下的后备不可能是Optionals本身.

在最糟糕的情况下,我可以有一长串ifPresent()检查,但似乎有一个更好的方法去实现它?

解决方法

return Stream.of(optional1,optional2,optional3)
             .filter(Optional::isPresent)
             .map(Optional::get)
             .findFirst();

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读