2011-04-07 67 views
36

我很驚訝地發現getBoolean()valueOf()方法爲相同的輸入字符串返回不同的結果。布爾類的getBoolean(String str)和valueOf(String str)給出不同的輸出

我試圖通過"true"兩種方法。但getBoolean()給我錯誤的輸出,而valueOf()給我正確的輸出。爲什麼?

+0

相關返回false:http://marxsoftware.blogspot.com/2009/12/java-booleans- getboolean-useful-if-not.html – 2011-04-07 12:29:15

+7

這是什麼語言?如果是Java,請注意'getBoolean'的參數不是表示布爾值的字符串;它是一個命名系統屬性的字符串,其值應該是表示布爾值的字符串。 – 2011-04-07 12:29:31

回答

5

getBoolean的javadoc明確規定,它搜索系統屬性。您傳遞給它的值是系統屬性的名稱,而不是「真」或「假」字符串。

例如,var b = Boolean.getBoolean(「some.property」);

0

我最近在使用Boolean.getBoolean()時也發現了這個問題。另外,如果你想有一個空檢查您可以使用Boolean.parseBoolean將在空的情況下

+0

使用Boolean.getBoolean(「property.name」)加載系統屬性時,不需要擔心空值。該API清楚地談到它。當且僅當參數指定的系統屬性存在並且等於字符串「true」(不區分大小寫)時,此API返回true。否則返回「false」。 – HIREN011 2016-06-20 17:41:49

0
class Boo1 
{  
    public static void main(String[] args) 
    {  
     System.setProperty("true","true"); 
     System.setProperty("false","true"); 

     boolean d=Boolean.getBoolean("true"); 

     System.out.println(d); 
    } 
} 
+7

請閱讀[回覆] – 2014-09-11 18:13:23

相關問題