boolean.parseboolean仅对忽略大小写的"true"返回true,其余字符串(含"false"、"")均返回false,但传入null会抛nullpointerexception;boolean.valueof对null返回boolean.false,更安全。

Boolean.parseBoolean 只认 "true"(不区分大小写),其他任何字符串(包括 "false"、""、null、"yes" 等)都返回 false。
只对 "true" 返回 true
这个方法的设计非常严格:只有字符串内容(忽略大小写)等于 "true" 时,才返回 true;其余所有情况一律返回 false。
-
Boolean.parseBoolean("true")→true -
Boolean.parseBoolean("TRUE")→true -
Boolean.parseBoolean("False")→false -
Boolean.parseBoolean("")→false -
Boolean.parseBoolean("false")→false -
Boolean.parseBoolean(null)→ 抛出NullPointerException
注意 null 会抛异常
传入 null 不会返回 false,而是直接抛出 NullPointerException。使用前必须确保字符串非空,或先做判空处理。
- 安全写法:
str != null && Boolean.parseBoolean(str) - 或者用
Boolean.valueOf(str)—— 它对null返回false,但注意它返回的是Boolean对象而非基本类型
和 Boolean.valueOf 的区别
Boolean.valueOf(String) 行为类似,也只认 "true",但它是静态工厂方法,返回 Boolean 包装对象,并且对 null 返回 Boolean.FALSE(不会抛异常)。
-
Boolean.valueOf("true")→Boolean.TRUE -
Boolean.valueOf(null)→Boolean.FALSE - 如需基本类型,可配合
.booleanValue():Boolean.valueOf(str).booleanValue()
需要更灵活解析?自己封装
如果业务中要支持 "1"、"yes"、"on" 等常见真值,或希望统一处理空值,建议封装工具方法:
- 先 trim 并判空,再按规则匹配
- 例如:
"1", "t", "y", "yes", "on"映射为true;"0", "f", "n", "no", "off"映射为false - 避免依赖
parseBoolean的“假宽容”行为(看似安全,实则掩盖语义歧义)
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











