Sobes.tech
Junior

Wat doet de methode equals()?

sobes.tech AI

Antwoord van AI

De equals()-methode in Java vergelijkt twee objecten op gelijkheid.

Standaard (in de klasse Object) controleert het of de referenties naar de objecten hetzelfde zijn (of ze naar hetzelfde exemplaar in het geheugen verwijzen).

Klassen kunnen deze methode overschrijven om de logische gelijkheid van objecten op basis van hun inhoud te bepalen (bijvoorbeeld, twee String-objecten worden als gelijk beschouwd als ze dezelfde tekenreeks bevatten, zelfs als het verschillende instanties zijn).

Bij het overschrijven van equals() is het ook nodig om de methode hashCode() te overschrijven, om de volgende overeenkomst te behouden: als twee objecten gelijk zijn volgens equals(), dan moeten hun hashCode()-methoden dezelfde waarden retourneren.

Voorbeeld van overschrijving:

class MyClass {
    private int value;

    public MyClass(int value) {
        this.value = value;
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true; // Referentie vergelijking
        if (o == null || getClass() != o.getClass()) return false; // Null en type controle
        MyClass myClass = (MyClass) o; // Cast
        return value == myClass.value; // Logische vergelijking op basis van waarde
    }

    @Override
    public int hashCode() {
        return Objects.hash(value); // Hash code genereren
    }
}