Sobes.tech
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.