相信很多人被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)。