Учитывая
boolean b = Boolean.parseBoolean("100");
Я думал, что это вызовет исключение, потому что "100" не является ни "true", ни "false". Но прошло, без исключений.
"100"
"true"
"false"
Почему метод не выбрасывает?
Чтение JavaDo c метода:
Разбирает строковый аргумент как логическое значение. Возвращаемое логическое значение представляет значение true, если строковый аргумент не null и равен (без учета регистра) строке "true". В противном случае возвращается ложное значение, в том числе для нулевого аргумента.
true
null
Просмотр реализации :
public static boolean parseBoolean(String s) { return "true".equalsIgnoreCase(s); }
Так что все, что не равно String "true" - случай игнорирования - считается false
false