gpt4 book ai didi

java - 为什么使用 Optional.of 而不是 Optional.ofNullable?

转载 作者:IT老高 更新时间:2023-10-28 12:17:54 25 4
gpt4 key购买 nike

使用 Java 8 Optional 类时,有两种方法可以将值包装在可选项中。

String foobar = <value or null>;
Optional.of(foobar); // May throw NullPointerException
Optional.ofNullable(foobar); // Safe from NullPointerException

我知道 Optional.ofNullable 是使用 Optional 的唯一安全方式,但为什么 Optional.of 存在呢?为什么不直接使用 Optional.ofNullable 并始终保持安全?

最佳答案

您的问题是基于这样的假设,即可能抛出 NullPointerException 的代码比可能不会抛出的代码更糟糕。这个假设是错误的。如果您希望您的 foobar 由于程序逻辑而永远不会为空,那么使用 Optional.of(foobar) 会更好,因为您会看到 NullPointerException 这将表明您的程序有错误。如果您使用 Optional.ofNullable(foobar) 并且 foobar 恰好是 null 由于该错误,那么您的程序将默默地继续不正确地工作,这可能是更大的灾难。这样一来,错误可能会在很久以后才发生,并且更难理解它是在什么时候出错的。

关于java - 为什么使用 Optional.of 而不是 Optional.ofNullable?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31696485/

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