Heim >Java >javaLernprogramm >Sollten Sie „instanceof' oder „getClass()' in der „.equals()'-Methode von Java verwenden?
Instanceof gegenüber getClass() in .equals()-Implementierungen bevorzugen
Beim Generieren von .equals()-Methoden in Eclipse werden Entwickler mit Folgendem konfrontiert: die Wahl zwischen der Verwendung von „getClass()“ oder „instanceof“ zum Vergleichen von Objekttypen. Während Eclipse standardmäßig „getClass()“ verwendet, ist es im Allgemeinen vorzuziehen, sich stattdessen für „instanceof“ zu entscheiden.
Gründe für die Bevorzugung von „instanceof“
Best Practices für Nullprüfungen
Bezüglich Bei Nullprüfungen empfiehlt es sich in der Tat, die Anweisung „if (obj == null)“ zu entfernen, wenn „instanceof“ verwendet wird. Dies liegt daran, dass „instanceof“ garantiert, dass „obj“ eine Instanz der relevanten Klasse ist und ein Nullobjekt keine Instanz einer Klasse sein kann.
Unterstützende Argumente
Josh Bloch, der Autor von „Effective Java“, befürwortet die Verwendung von „instanceof“ in .equals()-Implementierungen. Er argumentiert, dass es die ordnungsgemäße Einhaltung des Liskov-Substitutionsprinzips gewährleistet und überraschendes Verhalten in Sammlungen verhindert, die auf der Gleichheitsmethode basieren.
Zusätzliche Unterstützung für diesen Ansatz finden Sie in einer Antwort auf Stack Overflow und in der dritten Kapitel von Blochs Buch „Effective Java“.
Das obige ist der detaillierte Inhalt vonSollten Sie „instanceof' oder „getClass()' in der „.equals()'-Methode von Java verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!