相信不少人被Boolean.getBoolean(String name)欺骗过,想固然的认为它是将“true”或者“false”转换为Boolean类型的API。错,彻底不是!下面咱们就详细讲一下Boolean.getBoolean(String name)的用法。code
首先咱们看下Boolean.getBoolean(String name)的源码:get
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属性对应的值进行转换。源码
正确的用法用法应该是:io
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)。static