Nehmen Sie eine alte Java-Bibliothek, die noch nicht auf Java 5 portiert wurde. Sie finden viele Orte, an denen der alte Code zurückgibt oder List
akzeptiert. Ohne Löschen könnten Sie keine Generics in Ihrem Code verwenden (um Ihr Leben einfacher zu machen) und Ihre Listen als Parameter an das Framework übergeben, ohne (flach) das Ganze zu kopieren - List
und List<String>
wären so verschieden wieund File
.
Auf ähnliche Weise, wenn die Bibliothek eine Liste zurückgibt, müssen Sie entweder die pre-5-Syntax mit einem Iterator verwenden, um sie zu verarbeiten oder die Basisliste in eine generierte zu kopieren.
Es gäbe eine Möglichkeit, das zu umgehen. Sun hätte List
gleich List<Object>
oder, Gott bewahre, List<?>
gemacht haben können. Aber das hätte noch subtilere Probleme mit sich gebracht. Also entschieden sie sich dafür, den Weg des geringsten Widerstands zu gehen und die generischen Informationen (meistens) während der Kompilation zu verwenden.
Es ist kein sehr gutes Beispiel, das alte und das neue in der gleichen Methode zu haben. –
Ich denke, dein Recht ... zu Methode geändert –