gpt4 book ai didi

Java 8 可选 ifPresent() 与 != null

转载 作者:行者123 更新时间:2023-12-02 12:25:50 25 4
gpt4 key购买 nike

据我了解,Optional ifPresent() 调用旨在替换空检查。从 Oracle 文档中提取代码示例,它在简单的情况下似乎非常有用。例如:

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

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

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

最佳答案

Optional 是一种用非空值替换可空引用的方法。 Optional 可以包含非空引用(在这种情况下,我们称该引用“存在”),也可以不包含任何内容(在这种情况下,我们称该引用“不存在”)。从来没有说过“包含 null”。

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

来源:Using and Avoiding null

正如之前提到的,请查看 this彻底回答帖子。

关于Java 8 可选 ifPresent() 与 != null,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32466007/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com