【问题标题】:Why is it impossible to compare a String and null with equals? [duplicate]为什么无法将 String 和 null 与 equals 进行比较? [复制]
【发布时间】:2017-09-25 08:38:35
【问题描述】:

在我的类的 getter 中,属性可能具有来自数据库的空值:

public String getCible() {
    return cible.equals(null) ? " - " : cible;
}

在我的代码中,我想调用这个 getter,但我得到了 NullPointerException。

如果我将比较更改为return cible == null ? " - " : cible;,那么一切都是正确的 :) 那为什么呢?

【问题讨论】:

  • stringnull 进行比较并非不可能。关键是不可能在 null 值上调用方法
  • equals 和 == 是两个不同的东西。在此处查看完整说明:stackoverflow.com/questions/7520432/… 您可以使用 org.apache.commons.lang.ObjectUtils.equals(cible, null) 或其字符串,然后使用 org.apache.commons.lang.StringUtils.equals(cible, null) 哪个是空安全的

标签: java


【解决方案1】:

你在null上调用了一个方法,所以它就像null.equals(null)null没有方法所以它抛出异常。

如果不想使用==,可以使用Objects.equals(yourString, null)

【讨论】:

    猜你喜欢
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    • 2013-07-05
    • 1970-01-01
    • 2018-07-12
    • 2021-07-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多