为什么布尔类中重写的equals(Object)方法不需要boolean/Boolean作为参数

Nat*_*ams 0 java equals

由于布尔等于(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作为参数?

SLa*_*aks 9

因为equals()是在Object课堂上定义的.

没有可能的签名可以做你想要的.
(不做Object通用,这会破坏目的)