Boolean类的getBoolean(String str)和valueOf(String str)给出不同的输出

Mah*_*ria 41 java boolean

我很惊讶地知道getBoolean()valueOf()方法为同一个输入字符串返回不同的结果.

我试图传递"true"给两个方法.但是getBoolean()给了我错误的输出,而valueOf()给了我正确的输出,这是真的.为什么?

aio*_*obe 85

                                     API文档是你的朋友.

  • Boolean.getBoolean 可能不会做你认为它做的事情:

    当且仅当参数指定的系统属性存在且等于字符串"true" 时,才返回true .


  • Boolean.valueOf 可能就是你要找的东西:

    如果字符串参数不为null且等于忽略大小写,则返回的布尔值表示值true为字符串"true".

  • `Boolean.getBoolean`必须是最糟糕放置方法的最愚蠢的方法 (3认同)

Yon*_*oni 5

getBoolean 的javadoc清楚地表明它搜索系统属性.传递给它的值是系统属性的名称,而不是"true"或"false"字符串.

例如,`var b = Boolean.getBoolean("some.property");