String.valueOf(String Object) 的 null 和 "null" 有什么区别



在我的项目中,我必须在某处使用if-n-else条件来检查空变量

String stringValue = null;
String valueOf = String.valueOf(stringValue);

但当我检查这样的情况时

if (valueOf == null) {
System.out.println("in if");
} else {
System.out.println("in else");
}

那么输出是"in else">,为什么会发生这种情况?

以下是String.valueOf:-的源代码

public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}

如您所见,对于null值,它返回"null"字符串。

所以,

String stringValue = null;
String valueOf = String.valueOf(stringValue);

将CCD_ 4字符串赋予CCD_。

同样,如果你这样做:-

System.out.println(null + "Rohit");

您将获得:-

"nullRohit"

编辑

另一个例子:

Integer nulInteger = null;
String valueOf = String.valueOf(nulInteger) // "null"

但在这种情况下。

Integer integer = 10;
String valueOf = String.valueOf(integer) // "10"

实际上,您可以看看方法的实现:valueOf()。到那时你就会知道发生了什么。

在JDK1.5中,它的代码如下:

public static String valueOf(Object obj) {
return (obj == null) ? "null" : obj.toString();
}

从代码中可以看到,如果对象为null,它将返回一个非null字符串,其中包含"null"值,这意味着valueOf对象不为null。

相关内容

  • 没有找到相关文章

最新更新