关于Java的Boolean.getBoolean方法和String转换Boolean的问题

作者: poxiao 分类: JDK源码笔记 发布时间: 2018-03-14 14:20

今天读配置文件里面有Boolean类型的属性,之前都是 使用下面代码判断:

感觉有点不优雅,于是用了一个Boolean类的静态方法Boolean.getBoolean,结果打断点一看:

返回false,有点莫名其妙。

断电进去看了一下getBoolean的源码:

呃,看到有个  System.getProperty(name)  感觉不对劲

看一下注释原来这个方法

当且仅当以参数命名的系统属性存在,且等于 “true” 字符串时,才返回 true。(从 JavaTM 1.0.2 平台开始,字符串的测试不再区分大

小写。)通过 getProperty 方法可访问系统属性,此方法由 System 类定义。 
如果没有以指定名称命名的属性或者指定名称为空或 null,则返回 false。

System.getProperty都有哪些呢?跟一下断点:

只有发的参数是上面的字符串并且该属性的值为true时 才会返回  true

 

呃,那么怎么才能把字符串转成Boolean呢?  继续看Boolean源码,发现私有方法:

那么都有哪些方法调用它呢?

构造方法:

其他方法:

所以类型转换还是使用paese开头的方法才是正确的姿态。不看API容易进坑啊。

本文链接:关于Java的Boolean.getBoolean方法和String转换Boolean的问题

转载声明:本站文章若无特别说明,皆为原创,转载请注明来源:破晓(http://www.code2048.net),谢谢!^^


如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!

发表评论

邮箱地址不会被公开。 必填项已用*标注