Warum sind die Remove-Methoden von Java Collections nicht generisch?
Das Java Collections-Framework bietet eine Methode „remove()“ sowohl für Sammlungen als auch für Karten. Diese Methode ist jedoch nicht generisch, d. h. sie akzeptiert ein Objekt als Argument und keinen Parameter vom Typ E. Diese Entscheidung hat Fragen zu den potenziellen Vorteilen aufgeworfen, die sich aus der generischen Gestaltung von „remove()“ ergeben.
Ein Argument für die generische Gestaltung von „remove()“ ist, dass dadurch Fehler bei der Kompilierung verhindert werden könnten, wenn versehentlich versucht wird, einen inkompatiblen Typ aus einer Sammlung zu entfernen . Wenn beispielsweise eine Collection
Der Grund, warum „remove()“ jedoch nicht generisch ist, liegt in erster Linie darin, dass es Folgendes zulässt Entfernung von Objekten basierend auf Gleichheit und nicht auf strenger Typprüfung. Gemäß der Spezifikation der Methode „remove()“ wird das zu entfernende Element als Objekt e identifiziert, sodass (o==null ? e==null : o.equals(e)) wahr ist. Dies ermöglicht Flexibilität beim Entfernen von Elementen, da das entfernte Objekt nicht vom gleichen Typ sein muss wie das an die Methode „remove()“ übergebene Objekt.
Zum Beispiel ist es möglich, eine Map
Das obige ist der detaillierte Inhalt vonWarum sind die „remove()'-Methoden von Java Collections nicht generisch?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!