JAVA布尔构造函数给出了意想不到的结果

Dee*_*ire 0 java constructor boolean

我刚刚写了一个代码:

Boolean b1 = new Boolean("programmer");
Boolean b2 = new Boolean("tester");
System.out.println(b1.equals(b2));
Run Code Online (Sandbox Code Playgroud)

它打印true为输出.为什么?

根据JAVA文档

new Boolean(String):如果字符串参数不为null且等于忽略大小写,则分配一个表示值true的Boolean对象为字符串"true".

Mis*_*lis 5

Boolean b1 = new Boolean("programmer"); // false
Boolean b2 = new Boolean("tester"); // false
Run Code Online (Sandbox Code Playgroud)

所以测试false == falsetrue.


public Boolean(String s)构造函数签名:

  • Boolean.parseBoolean("True") 回报 true

  • Boolean.parseBoolean("yes") 回报 false