由于布尔等于(Object)方法不需要布尔/布尔参数,因此可能出现以下编码错误:
private void foo() {
Boolean isSomeConditionTrue = false;
String doSomething = "YES";
if(isSomeConditionTrue.equals(doSomething)) {
// Do Something
}
}
Run Code Online (Sandbox Code Playgroud)
这段代码不会"做某事",因为编码器忘记在谓词中将doSomething评估为String.为什么Boolean等于接受Object而不是boolean/Boolean作为参数?