【问题标题】:When is it correct to use null given that there is Optional? [closed]鉴于有 Optional,什么时候使用 null 是正确的? [关闭]
【发布时间】:2017-04-06 18:11:23
【问题描述】:

Java 有一个Optional 类型,它减轻了很多null 引起的痛苦。 null 是否有任何有效的用例?为什么会使用null 而不是Optional

一个可能的地点可能是表演。 null 可能比 Optional 快。

【问题讨论】:

标签: java null optional


【解决方案1】:

Optional 对象的典型用例仅用于方法的 return 类型。

另外,使用Optional 作为方法参数或构造函数参数不是一个好习惯,因为我们不能强制非空可选对象,即Optional 对象本身可以是null。换句话说,即使您将Optional 对象作为方法参数传递,因为我们不能保证Optional 对象本身不为空,您仍然可能会得到null 检查。我建议您可以查看here 对此主题的详细讨论。

另一点是Java的Optional不是Serializable,所以你不能在需要序列化的变量/字段上使用Optional。你可以参考这个here

所以,重要的一点是我们仍然需要 null 引用 Optional 没有意义的地方

【讨论】:

  • 他们争辩说,为了方便调用者,您应该重载您的方法,而不是接受Optional 参数:一个版本需要一个非空参数,而一个版本根本没有该参数.
猜你喜欢
  • 1970-01-01
  • 2019-09-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-09-20
  • 2012-09-19
  • 1970-01-01
相关资源
最近更新 更多