Das offizielle Java-Tutorial zu Generics erklärt das Löschen von Typen und warum es dem Compiler hinzugefügt wurde:
Wenn ein generischer Typ instanziiert wird, übersetzt der Compiler diese Typen mit einer Technik, die als Typlöschung bezeichnet wird - ein Prozess, bei dem der Compiler alle Informationen zu Typparametern und Typargumenten in einer Klasse oder Methode entfernt. Mit der Typlöschung können Java-Anwendungen, die Generika verwenden, die Binärkompatibilität mit Java-Bibliotheken und Anwendungen aufrechterhalten, die vor Generika erstellt wurden.
Dies war höchstwahrscheinlich ein pragmatischer Ansatz oder der am wenigsten schmerzhafte. Was kann jedoch getan werden, nachdem Generika in der gesamten Branche allgemein unterstützt werden, damit wir keine Typlöschung mehr benötigen? Ist es machbar, ohne die Abwärtskompatibilität aufheben zu müssen, oder ist es praktisch, wenn es machbar ist?
Ist die letzte Aussage im obigen Zitat selbstreferenzierend geworden? Das heißt: "Mit der Typlöschung können Java-Anwendungen, die Generika verwenden, die Binärkompatibilität mit Java-Bibliotheken und Anwendungen aufrechterhalten, die mit Java-Versionen erstellt wurden, die die Typlöschung durchführen."