Java 8:用于null检查样式的map和flatMap之间的区别
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Java 8:用于null检查样式的map和flatMap之间的区别,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含831字,纯文字阅读大概需要2分钟。
内容图文
![Java 8:用于null检查样式的map和flatMap之间的区别](/upload/InfoBanner/zyjiaocheng/811/d4dabb63cb70426f9598c925e272e8a9.jpg)
例如,我有两个模型类:
public class Person {}
public class Car {}
现在,我有一个接受2个可选参数的方法:
public void example1(Optional<Person> person, Optional<Car> car) {
if (person.isPresent() && car.isPresent()) {
processing(person.get(), car.get());
}
}
现在,我不想像这样使用null检查,我使用flatMap和map.
person.flatMap(p -> car.map(c -> processing(p, c)));
person.map(p -> car.map(c -> processing(p, c)));
所以我的问题是:上述两种用法有什么不同吗?因为我认为是相同的:如果一个值为null,java将停止执行并返回.
谢谢
解决方法:
不同之处仅在于会返回Optional<?>另一个将返回Optional< Optional<?>> (用返回类型的处理()替换?).由于您丢弃了返回类型,因此没有区别.
但最好避免映射函数,按照惯例应该避免副作用,而是使用更惯用的ifPresent():
person.ifPresent(p -> car.ifPresent(c -> processing(p, c)));
如果processing()具有void返回类型,这也适用,而映射函数则不然.
内容总结
以上是互联网集市为您收集整理的Java 8:用于null检查样式的map和flatMap之间的区别全部内容,希望文章能够帮你解决Java 8:用于null检查样式的map和flatMap之间的区别所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。