Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/349.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 当参数obj为null时,为什么String.valueOf(Object obj)==null返回false?_Java_Null_Boolean_Equals Operator - Fatal编程技术网

Java 当参数obj为null时,为什么String.valueOf(Object obj)==null返回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

为什么上面的声明返回false? 有人能解释一下吗?

请阅读:

返回:

如果参数为
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 think
String.valueOf(null)
返回
null
。换句话说,他并没有试图完全比较字符串。
public static void main(String[] args) {
  Long lo = null;
  System.out.println(String.valueOf(lo) == null);
}