Ich habe eine Klasse, deren Gleichheit auf 2 Felder basiert, so dass, wenn entweder eine gleich ist, dann die Objekte dieses Typs als gleich betrachtet werden. wie kann ich eine HashCode()-Funktion für eine solche equals() schreiben, so dass der allgemeine Vertrag der HashCode gleich ist, wenn equals wahr zurückgibt, erhalten bleibt?
public class MyClass {
int id;
String name;
public boolean equals(Object o) {
if (!(o instanceof MyClass))
return false;
MyClass other = (MyClass) o;
if (other.id == this.id || other.name == this.name)
return true;
return false;
}
}
wie schreibe ich eine HashCode()-Funktion für diese Klasse? und ich möchte den trivialen Fall hier der Rückkehr eine Konstante wie so zu vermeiden:
public int hashCode() {
return 1;
}