Junior — Middle
Puoi spiegare cosa significa il metodo equals nel contesto del confronto di oggetti in Java?
sobes.tech AI
Risposta dell'AI
In Java, il metodo equals viene utilizzato per confrontare il contenuto di due oggetti per verificare se sono uguali. Per impostazione predefinita, se non viene sovrascritto, il metodo equals della classe Object confronta i riferimenti, cioè verifica se entrambe le variabili puntano allo stesso oggetto in memoria.
Per confrontare gli oggetti per valore (ad esempio, per i campi della classe), è necessario sovrascrivere il metodo equals. È importante rispettare il contratto del metodo: deve essere riflessivo, simmetrico, transitivo, coerente e non uguale a null.
Esempio di sovrascrittura di equals nella classe Person:
public class Person {
private String name;
private int age;
@Override
public boolean equals(Object obj) {
if (this == obj) return true; // confronto con se stessi
if (obj == null || getClass() != obj.getClass()) return false;
Person other = (Person) obj;
return age == other.age && Objects.equals(name, other.name);
}
@Override
public int hashCode() {
return Objects.hash(name, age);
}
}
In questo modo, equals consente di confrontare gli oggetti per significato, e non per riferimento.