【发布时间】: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