java.lang.Object 作为其实参类型的其他 equals() 重载,则报告采用 java.lang.Object 以外的实参类型的 equals() 方法。
equals() 的协变版本不会重写 Object.equals(Object) 方法。 它可能会在运行时导致意外行为。 例如,如果该类用于构造一个标准集合类,该集合类预期会重写 Object.equals(Object) 方法。
示例:
class Foo {
public boolean equals(Foo foo) { // 警告
return false;
}
}
class Bar {
public boolean equals(Bar bar) { // 此处无警告
return false;
}
@Override
public boolean equals(Object obj) {
return false;
}
}