假设有两个这样的类:
abstract class A { /* some irrelevant methods */ }
class B extends A {
public final int x;
public B(final int x) {
this.x = x;
}
/* some more irrelevant methods */
}
Run Code Online (Sandbox Code Playgroud)
然后我使用Eclipse的"Source→Generate hashCode()和equals()......" 在类上生成equals()和hashCode()方法B.但Eclipse警告我:
超类'com.example.test2.A'不重新声明equals()和hashCode() - 结果代码可能无法正常工作.
那么,什么会导致生成的代码与生成的方法无法正常工作?
(顺便说一下,生成的方法如下所示:
@Override
public int hashCode() {
final int prime = 31;
int result = 1;
result = prime * result + x;
return result;
}
@Override
public boolean equals(Object obj) …Run Code Online (Sandbox Code Playgroud) java ×1