Das Wissensportal für IT-Professionals. Entdecke die Tiefe und Breite unseres IT-Contents in exklusiven Themenchannels und Magazinmarken.

SIGS DATACOM GmbH

Lindlaustraße 2c, 53842 Troisdorf

Tel: +49 (0)2241/2341-100

kundenservice@sigs-datacom.de

Parametrizität in Java

So gut wie alle modernen Programmiersprachen erlauben es, Routinen über Werte und über Typen zu parametrisieren. In Java wird letzteres „Generics” genannt, in C++ hingegen „Templates”. Obwohl die Konzepte die gleichen sind, unterscheidet sich die Implementierung doch stark. In diesem Artikel möchte ich diese Art der Parametrisierung in Java unter die Lupe nehmen und erklären, warum „Type Erasure” doch eine ganz gute Idee ist.

Unter Java-Programmierern hat Type Erasure einen schlechten Leumund. In Gesprächen bin ich oft auf Unglauben gestoßen, wenn ich versucht habe, zu erklären, dass es eine Notwendigkeit ist.

Was ist eigentlich Type Erasure?

Doch der Reihe nach: Was ist Type Erasure überhaupt? Java unterstützt seit Version 1.5 die sogenannten Generics. So bezeichnet man Methoden, Klassen und Interfaces, die mit einem oder mehreren Typparametern deklariert sind. Das klassische Beispiel dafür ist die Collections-Bibl…