Wieso wird in der automatisch generierten equals-Methode in Java das übergebene Objekt gecastet?

3 Antworten

Automatisch generierter Code ist häufig nicht durchoptimiert.

Wenn ich richtig liege, ist es überhaupt nicht notwendig, die Variable adresse einzuführen. Man könnte direkt mit a weiterarbeiten.

Woher ich das weiß:Berufserfahrung – Programmierer
KathaHohenfels 
Fragesteller
 31.05.2022, 12:13

wäre es nötig, wenn man statt Adresse a Object o übergeben würde?

0
Suboptimierer  31.05.2022, 12:16
@KathaHohenfels

Gute Überlegung. Dann müsste man Object zu Adresse casten.

Ich weiß nur nicht, ob er schon im Typvergleich aussteigen würde.

0

der macht das um die felder vom objekt mit den feldern von this zu vergleichen

sonst würde im normalfall a.hausnummer == hausnummer nicht funktionieren

in dem fall macht es keinen sinn, aber eigentlich überschreibt man die equals methode mit einem Object parameter und nicht einem spezifischen

kurzgesagt die equals methode wurde falsch überschrieben

Hey,

wie du glaube ich schon selbst erkannt hast, ist der Parameter der equals() Methode eigentlich vom Typ Object. Ist dies der Fall, ist der Cast natürlich notwenig. Da hier der Typ aber bereits definiert ist, ist der Cast redundant und könnte entfernt werden.

Mfg Jannick (L1nd)

Woher ich das weiß:eigene Erfahrung