相信很多人被Boolean.getBoolean(String name)欺騙過,想當然的認為它是將“true”或者“false”轉換為Boolean類型的API。錯,完全不是!下面我們就詳細講一下Boolean.getBoolean(String name)的用法。
1 用法
首先我們看下Boolean.getBoolean(String name)的源碼:
public static boolean getBoolean(String name) {
boolean result = false;
try {
result = parseBoolean(System.getProperty(name));
} catch (IllegalArgumentException | NullPointerException e) {
}
return result;
}
從源代碼中可以看出Boolean.getBoolean首先會根據name從系統屬性中獲取name屬性的值,然后對name屬性對應的值進行轉換。
正確的用法用法應該是:
public static void main(String[] args) {
String value = "true";
String key= "key";
System.setProperty(key, value);
Boolean flag = Boolean.getBoolean(key);
if(flag) {
System.out.println("key is true");
} else {
System.out.println("key is not true");
}
}
如果想將“true”或者“false”轉換為Boolean類型值,可以使用Boolean.parseBoolean(String s)。