CWE ID: 595
Name: Comparison of Object References Instead of Object Contents
Das Produkt vergleicht Objekt-Referenzen anstelle des Inhalts der Objekte selbst, wodurch es verhindert wird, äquivalente Objekte zu erkennen.
Beispielsweise führen Objektvergleiche in Java mit dem Operator ==
in der Regel zu irreführenden Ergebnissen, da der ==
-Operator Objekt-Referenzen und nicht Werte vergleicht. Häufig bedeutet dies, dass die Verwendung von ==
für Strings tatsächlich einen Vergleich der Referenzen und nicht der Werte der Strings durchführt.
Effektivität: Unknown
Beschreibung: In Java sollte man Objekte stattdessen mit der Methode equals()
vergleichen, anstatt den ==
-Operator zu verwenden. Sollte man dennoch ==
verwenden, ist es aus Performance-Gründen wichtig, dass die Objekte durch eine statische Factory und nicht durch einen Konstruktor erstellt werden.