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

如果存在可选项,那么何时使用null是正确的?[闭门]

锺霍英
2023-03-14

想要改进此问题?通过编辑此帖子,更新问题,以便可以用事实和引文来回答问题。

Java有一个可选的类型,这减轻了nullnull是否还有任何有效的用例?为什么要使用<code>null</code>而不是<code>可选</code>?

一个可能的场所也许是表演。< code>null可能比< code>Optional快。

共有1个答案

闾丘德业
2023-03-14

可选对象的典型用例仅用于方法的返回类型。

此外,使用<code>可选</code>作为方法参数或构造函数参数也不是一个好做法,因为我们不能强制非空可选对象,即<code>可选项</code>对象本身可以是<code>空</code>。换句话说,即使您传递了一个<code>可选</code>对象作为方法参数,因为我们不能保证<code>可选项</code>对象本身不为空,您可能仍然会得到<code>空</code>检查。我建议你在这里详细讨论一下这个问题。

另一点是Java的可选不可序列化,因此不能对需要序列化的变量/字段使用可选项。你可以在这里查阅更多信息。

因此,重要的一点是,在 Optional 没有意义的地方,我们仍然需要引用。

 类似资料:
  • 在JavaScript中,有没有一种方法可以将可选参数传递到函数中,如果它不是null的话?否则,根本不要传递此参数。 例如下面的函数,如果var_c为null,如何不插入c参数

  • 我使用以下参数运行java应用程序: null 按照我的理解,我需要查看参数。但在本例中,它大大超过。在本例中,预计将发生。我做错了什么?如何为容器限制java应用程序的内存?我是否错误地查看了使用的进程内存? 我想最小化使用的RAM。OS-CentOS 7

  • 我有以下Java 8代码: 它工作正常,但我想知道如何将调用链接到不使用。我试过使用,但它不允许返回另一个

  • 想改进这个问题吗 通过编辑此帖子,更新问题,使其只关注一个问题。 我不想将任何参数传递给AsyncTask的doInBackground方法。 那么代码应该是什么样的呢?

  • 面试题 项目中缓存是如何使用的?为什么要用缓存?缓存使用不当会造成什么后果? 面试官心理分析 这个问题,互联网公司必问,要是一个人连缓存都不太清楚,那确实比较尴尬。 只要问到缓存,上来第一个问题,肯定是先问问你项目哪里用了缓存?为啥要用?不用行不行?如果用了以后可能会有什么不良的后果? 这就是看看你对缓存这个东西背后有没有思考,如果你就是傻乎乎的瞎用,没法给面试官一个合理的解答,那面试官对你印象肯

  • 我是java新手,以前使用过php、python和js。最近使用python,所以要习惯类似“IfMyVar为None:”。这里是我的问题:我从一些库中获取区域设置作为可选的,我只需要返回一种语言,或者如果发生超时,或者一些错误,等等。然后我需要将语言传递给某个对象(上下文),然后在稍后的某处将上下文转换为请求的参数。所以我做了一些类似的事情 我有一个建议,用可选语言重写所有内容。用类似的方法替换