Mic*_*ers 22
是.
public class MyObject {
@Override
public int hashCode() {
return 42;
}
public static void main(String[] args) {
MyObject obj1 = new MyObject();
MyObject obj2 = new MyObject(); // Ta-da!
}
}
Run Code Online (Sandbox Code Playgroud)
对于一个不那么轻率的答案,请考虑hashCode Javadocs:
hashCode的一般契约是:
- ......(剪辑)......
- 如果两个对象根据equals(Object)方法相等,则对两个对象中的每一个调用hashCode方法必须生成相同的整数结果.
是的,因为您可以拥有任意数量的对象hashCode.例如,以下代码,没有实习字符串,显示了这个事实:
String foo = new String("dfa");
String bar = new String("dfa");
assert foo != bar; // yields false, two distinct objects (references)
assert foo.hashCode() == bar.hashCode(); // yields true
Run Code Online (Sandbox Code Playgroud)