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

java 9 OR和java 8 orElseGet之间的区别

发布时间:2020-12-15 05:18:32 所属栏目:Java 来源:网络整理
导读:Java9为Optional添加了.or方法.现有的.orElseGet有何不同? checkUserInMemory(userId).or(() - checkUserInDB(userId)); 解决方法 主要是两者的返回类型各不相同. Optional.orElseGet 对orElseGet的调用返回对象T本身. 如果没有值且提供函数为null,则抛出Nu
Java9为Optional添加了.or方法.现有的.orElseGet有何不同?

checkUserInMemory(userId).or(() -> checkUserInDB(userId));

解决方法

主要是两者的返回类型各不相同.

Optional.orElseGet

>对orElseGet的调用返回对象T本身.
>如果没有值且提供函数为null,则抛出NullPointerException
>用例:根据提供的函数确定性地获取值.

Optional.or

> Optional.or返回描述值的Optional,否则返回由供应函数生成的Optional
>如果提供函数为null或者提供函数产生null结果,则抛出NullPointerException.
>使用案例:根据提供的函数的结果链接一系列Optionals.样品 –
How do I concisely write a || b where a and b are Optional values?

(编辑:李大同)

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

    推荐文章
      热点阅读