为什么 parseBoolean 不抛出异常?

Nam*_*har 0 java parsing exception

考虑

boolean b = Boolean.parseBoolean("100");
Run Code Online (Sandbox Code Playgroud)

我认为它会抛出异常,因为"100"既不是也不"true""false"。但它过去了,没有例外。

为什么方法不抛出?

kni*_*ttl 6

阅读该方法的JavaDoc(重点是我的):

将字符串参数解析为布尔值。true如果 string 参数不null等于string ,则返回的布尔值表示该值,忽略大小写"true"否则,将返回假值,包括空参数。

实现

    public static boolean parseBoolean(String s) {
        return "true".equalsIgnoreCase(s);
    }
Run Code Online (Sandbox Code Playgroud)

所以任何不等于字符串的东西"true"——忽略大小写——都被认为是false