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;
}
}