最近在使用Boolean. 场景是String 的true,或者false转换成boolean 基本类型的布尔型。 随意的选了一个getBoolen 但是在做单元测试的时候验证不通过。
仔细看了下Boolean的源码才发现问题所在
Boolean 返回boolean的公有方法总共有两个,就是标题上所提到的Boolean.getBoolean(String name) 和 Boolean.parseBoolean(String s) 两个方法。
他们会都会调用 toBoolean的私有静态方法,不同点是在于Boolean.getBoolean是根据传参去找Java System的参数变量,如果系统中存在此变量则返回对应的boolean,否则返回false。
贴出部分代码:
Boolean.getBoolean:
public static boolean getBoolean(String name) {
boolean result = false;
try {
result = toBoolean(System.getProperty(name));
} catch (IllegalArgumentException e) {
} catch (NullPointerException e) {
}
return result;
}
Boolean.parseBoolean:
public static boolean parseBoolean(String s) {
return toBoolean(s);
}
toBoolean: