簡體   English   中英

String.valueOf(String Object)的null和“null”有什么區別

[英]what is difference between null and “null” of String.valueOf(String Object)

在我的項目中,如果其他條件檢查空變量,我必須使用

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

但是當我檢查條件時

  if (valueOf == null) {
        System.out.println("in if");
    } else {
        System.out.println("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);

"null"字符串valueOf

同樣,如果你這樣做: -

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()。 你會知道那時發生了什么。

在JDK 1.5中,其代碼如下:

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

從代碼中,您可以看到如果對象為null,它將返回一個非空字符串,其中包含“null”值,這意味着valueOf對象不為null。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM