【问题标题】:Why does String.valueOf(Object obj) == null return false when argument obj is null? [duplicate]为什么当参数 obj 为 null 时 String.valueOf(Object obj) == null 返回 false? [复制]
【发布时间】:2016-09-15 17:41:55
【问题描述】:
public static void main(String[] args) {
  Long lo = null;
  System.out.println(String.valueOf(lo) == null);
}

为什么上面的语句返回 false ? 谁能解释一下..

【问题讨论】:

  • 我们使用“equals()”方法来检查对象的相等性(在这种情况下是字符串),而不是“==”。
  • @aakash 你不使用equals() 来检查空值。它永远不会返回 false。
  • @shmosel 我从来没有说过你使用equals() 来检查null。请再次阅读我的评论。当然,我的评论中存在一些空白,我认为 OP 对 Java 的理解可以很容易地填补这些空白。 String.valueOf(lo) 将返回一个字符串“null”,它不为 null。所以,如果 OP 想要检查,他应该使用String.valueOf(lo).equals("null")。你已经回答了这个问题,恭喜。
  • @Aakash 我认为 OP 认为 String.valueOf(null) 返回 null。换句话说,他并没有尝试完全比较字符串。

标签: java null boolean equals-operator


【解决方案1】:

阅读Javadoc

返回:

如果参数是null,则字符串等于"null";否则返回obj.toString()的值。

换句话说,结果是字符串 "null",而不是 null

【讨论】:

    猜你喜欢
    • 2012-04-27
    • 1970-01-01
    • 1970-01-01
    • 2023-04-02
    • 1970-01-01
    • 2015-02-22
    • 2019-10-07
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多