【问题标题】:string.equals(null) vs string == null [duplicate]string.equals(null) vs string == null [重复]
【发布时间】:2015-08-02 20:53:52
【问题描述】:

我已经看到其中一些回答了 PHPSQLC++,但无法通过 java 找到。有一些约定或最佳实践吗?

我问的是 null 而不是 equals==

if (myString != null && myString == null)

if (!myString.equals(null) && myString.equals(null))

【问题讨论】:

  • 这是我认为的答案:stackoverflow.com/questions/4501061/…
  • 这是关于 null 而不是 equals==
  • 这是您的 null 的答案。在您的情况下,Equals 会抛出 NullPointerException。
  • 如果myString == null, myString.equals(null) 抛出空指针..
  • 因为如果是null,就像写null.equals(null)一样。

标签: nullpointerexception convention


【解决方案1】:

mystring == null,如果 mystring 实际上为 null,则会引发异常,因为您正在尝试访问其 equals 方法。

【讨论】:

  • 如果你不想在检查字符串值之前检查 null ,你可以做"astring".equals(myString)
  • 这个答案给出了为什么不使用 .equals 的很好的额外理由,即使 OP 没有明确询问它:) stackoverflow.com/a/4501084/3255525
【解决方案2】:

如果myString 不为空,则myString.equals(null) 为假by definition。如果为null,则会抛出NullPointerException

如果要检查myString是否为空,必须通过myString == null;检查

【讨论】:

    【解决方案3】:

    if (!myString.equals(null) && myString.equals(null))

    当您尝试在不存在的对象 myString 上调用方法 (.equals) 时将无法工作。

    【讨论】:

      猜你喜欢
      • 2014-04-18
      • 2019-10-07
      • 2011-12-24
      • 2011-08-13
      • 2020-07-11
      • 2013-07-20
      • 2018-02-28
      • 2011-10-01
      • 1970-01-01
      相关资源
      最近更新 更多