首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java8可选的ifPresent() vs != null

Java8可选的ifPresent() vs != null
EN

Stack Overflow用户
提问于 2015-09-08 19:44:54
回答 1查看 3.7K关注 0票数 4

我知道Optionals ifPresent()调用是用来替换null检查的。从Oracle文档中提取代码示例,在简单的情况下似乎非常有用。例如:

代码语言:javascript
复制
Optional<Soundcard> soundcard = ...;
soundcard.ifPresent(System.out::println);

我只想知道为什么这比空检查更好。可读性?表演?在我看来,这会对项目性能造成影响,因为必须引入一个新对象才能保存我们最终希望获得的对象?完整地说,为什么这个soundcard.ifPresent()

被认为比这个if(soundcard != null)更好。

EN

回答 1

Stack Overflow用户

发布于 2015-09-08 19:49:16

Optional是一种用非空值替换可空引用的方法。Optional可能包含一个非空引用(在这种情况下,我们说引用是“存在的”),或者它可能不包含任何引用(在这种情况下,我们说引用“缺席”)。从来没有说过“包含null”。

除了可读性之外,如果您想要编译程序,它迫使您考虑缺少的情况,因为您必须积极地展开Optional并解决这个问题。

来源:null

正如前面所提到的,请看一看this完全回答的帖子。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32466007

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档