Questa è la mia implementazione della classe equals per una classe Coor che contiene solo 2 ints x e y. questo sarebbe il modo corretto di implementare questo metodo?Implementazione del metodo equals in java
public boolean equals(Object obj) {
if (obj == null || obj.getClass() != this.getClass()) {
return false;
}
Coor temp = (Coor) obj;
if (temp.x == this.x && temp.y == this.y) {
return true;
} else {
return false;
}
}
Sì. Se tutti i campi sono uguali, e questo è ciò che intendi per "uguale", allora hai reso il metodo corretto. Questo non funzionerà se stai confrontando qualcosa che eredita dalla classe corrente ('this'), ma funzionerà se lo sono. – bdares
non dimenticare di sovrascrivere la funzione hashcode se desideri utilizzarlo in Collections (anche se dietro le schermate) –