Hier das Codebeispiel:
@Override
public boolean equals(Adresse a) {
if (this == a) return true; //wenn exakt gleich
if (a == null || getClass() != a.getClass()) return false; //wenn null oder nicht gleiche Klasse, dann nicht gleich
Adresse adresse = (Adresse) a;//gecastet zum gleichen Typ
return hausnummer == adresse.hausnummer && postleitzahl == adresse.postleitzahl && Objects.equals(strasse, adresse.strasse);
}
Warum wird a gecastet zum Typ Adresse? Warum ist das notwendig?
Diese equals-Methode ist automatisch so generiert in IntelliJ. Ziel ist es, ein Objekt der Klasse Adresse mit einem anderen Objekt der Klasse Adresse zu vergleichen und herauszufinden, ob diese sich entsprechen.