gpt4 book ai didi

java - 为什么Java的Optional.of()不接受空值?那么它就不再是真正的 "optional"值了

转载 作者:行者123 更新时间:2023-12-01 07:44:36 25 4
gpt4 key购买 nike

我知道我们有Optional.ofNullable()如果该值也可以为空。我的问题是,为什么这不是 Optional.of() 的默认行为还有?如果一个值不能是 null ,为什么要放入 Optional首先?无论如何,如果结果为空,您仍然会得到 NPE。如果你构造一个Optionalof()方法,您仍然可以使用 Optional 的所有其他方法只有当值可以是 null 时,包装器才真正有用途。 .

编辑:我已阅读Why use Optional.of over Optional.ofNullable?在发布此内容之前,但答案是“因为您可以更快地发现错误,并且这样更容易追踪它”。但我有点不同意这一点,也许你的堆栈跟踪中会有一些额外的行,但仍然很容易查明 NPE 的来源。

最佳答案

该方法适用于非空参数!该方法的意图是保证当使用 null 调用时它会失败!

这是关于程序员向读者传达意图的!

当您不知道输入的内容并且该输入可能为空时,您可以使用其他方法告诉读者。但是,当您知道“传入的 null 永远不应该发生”时,那么在违反非常严格的契约(Contract)时抛出异常可能是公平的。

关于java - 为什么Java的Optional.of()不接受空值?那么它就不再是真正的 "optional"值了,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55799537/

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