当前位置: 首页 > 知识库问答 >
问题:

Java8可选的ifPresent()vs!=null[重复]

沈飞跃
2023-03-14

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

Optional<Soundcard> soundcard = ...;
soundcard.ifPresent(System.out::println);

我只是想了解为什么这被认为比空检查更好。可读性?表演在我看来,这会对项目性能造成影响,因为必须引入一个新的对象才能容纳我们最终希望获得的对象?总之,为什么这是声卡。ifPresent()

如果(声卡!=null),则认为比这更好。

共有1个答案

温星华
2023-03-14

可选是一种用非空值替换可空引用的方法。可选可以包含非空引用(在这种情况下,我们称引用为“存在”),也可以不包含任何内容(在这种情况下,我们称引用为“不存在”)。它从未被称为“包含null”

除了可读性之外,如果您想让程序编译,它还迫使您考虑不存在的情况,因为您必须主动打开Optional并解决该情况。

来源:使用和避免null

如前所述,看看这篇得到彻底回答的帖子。

 类似资料: