Java 当参数obj为null时,为什么String.valueOf(Object obj)==null返回false?
为什么上面的声明返回false? 有人能解释一下吗?请阅读: 返回: 如果参数为Java 当参数obj为null时,为什么String.valueOf(Object obj)==null返回false?,java,null,boolean,equals-operator,Java,Null,Boolean,Equals Operator,为什么上面的声明返回false? 有人能解释一下吗?请阅读: 返回: 如果参数为null,则字符串等于“null”;否则,将返回obj.toString()的值 换句话说,结果是字符串“null”,而不是值null我们使用“equals()”方法检查对象的相等性(本例中为字符串),而不是“==”@aakash您不使用equals()检查null。它永远不会返回false。@shmosel我从来没有说过您使用equals()检查null。请再次阅读我的评论。当然,我的评论中存在一些空白,我认为OP
null
,则字符串等于“null”
;否则,将返回obj.toString()
的值
换句话说,结果是字符串
“null”
,而不是值null
我们使用“equals()”方法检查对象的相等性(本例中为字符串),而不是“==”@aakash您不使用equals()
检查null。它永远不会返回false。@shmosel我从来没有说过您使用equals()
检查null
。请再次阅读我的评论。当然,我的评论中存在一些空白,我认为OP对Java的理解可以很容易地填补这些空白String.valueOf(lo)
将返回一个字符串“null”,该字符串不是null。因此,如果OP想检查这一点,他应该使用String.valueOf(lo).equals(“null”)
。由于您已经回答了这个问题,恭喜您。@Aakash我认为OP thinkString.valueOf(null)
返回null
。换句话说,他并没有试图完全比较字符串。
public static void main(String[] args) {
Long lo = null;
System.out.println(String.valueOf(lo) == null);
}