是否有过在那里使用情况equals(Boolean)
和==
用打交道时将返回不同的结果Boolean
对象?
Boolean.TRUE == myBoolean;
Boolean.TRUE.equals(myBoolean);
我没有想过基本类型在这里,只是布尔对象。
是否有过在那里使用情况equals(Boolean)
和==
用打交道时将返回不同的结果Boolean
对象?
Boolean.TRUE == myBoolean;
Boolean.TRUE.equals(myBoolean);
我没有想过基本类型在这里,只是布尔对象。
怎么样:
System.out.println(new Boolean(true) == new Boolean(true));
System.out.println(new Boolean(true) == Boolean.TRUE);
(两个打印假,为相同的原因作为任何其他类型的对象 )。
这将是危险的使用==
因为myBoolean
可能没有起源于一个常量,但都被构建为new Boolean(boolValue)
在这种情况下==
总是会导致false
。 你可以只用
myBoolean.booleanValue()
既不==
也不equals
参与,给人可靠的结果。 如果必须满足null
-值,以及,那么没有什么比你的更好equals
方法。
if (Boolean.TRUE == new Boolean(true)) {
System.out.println("==");
}
if (Boolean.TRUE.equals(myBoolean)) {
System.out.println("equals");
}
在这种情况下,第一个是假的。 只有第二,如果条件为真。
它打印:
等于
==
仅适用于基本类型
当你比较的对象,你应该总是使用o.equls(Object ob)