微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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?

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐