Generics

Geschrieben von Michael Biesmann & Fabian Markert
View Comments

1. Einleitung
2. Was sind Generics?
3. Welche Einschränkungen existieren für Generics?
4. Wie sehen Generic-Deklarationen aus?
5. Wofür verwendet man Generics?
5.1. Beispiel 1
5.2. Beispiel 2
6. Wie funktionieren Generics?
7. Welche Typen von Generics gibt es?
8. Wie kann man Datentypen mit Generics verwenden?
9. Welche Neuerungen gibt es?

1. Einleitung

Dies ist unser zweiter vorbereitender Artikel von drei, bevor wir uns unserem Hauptthema widmen. Wir wollen uns in diesem Post über Generics den folgenden Fragestellungen stellen:

Teil 1 Teil 3

2. Was sind Generics?

Generics sind Typen, die man parametrisieren kann. Häufig spricht man auch von Typ-Parametern und Typ-Variablen. Unter Typen versteht man in diesem Zusammenhang Datentypen. Analog kann man von Datentyp-Parametern und Datentyp-Variablen sprechen. Mit dem JSR 14 wurden Generics formalisiert und haben mit der Java Version 1.5 im Jahr 2005 in die Java-Welt Einzug gehalten.


3. Welche Einschränkungen existieren für Generics?


4. Wie sehen Generic-Deklarationen aus?


5. Wofür verwendet man Generics?

Durch das Aufkommen von Generics wurde Java um eine mächtige Funktionalität erweitert. Hierdurch wird das Schreiben von Templates gefördert, wodurch bei der Entwicklung von Quellcode eine Zeitersparnis resultiert. Starke Anwendung finden Generics im Bereich der Klassen, die das java.util.Collection Interface implementieren. Hier tragen Generics dazu bei, den Quellcode dahingehend sicherer zu machen, dass Casting-Fehler eliminiert werden. Dies geschieht durch die Angabe des Datentyps, denn dadurch verlagern sich die Fehler von der Laufzeit in die Compilezeit. Siehe hierzu Bitte Beispiel 1. Ein weiterer positiver Aspekt, der sich durch die Verwendung von Generics ergibt, ist der, dass früher, vor der Zeit von Generics, Typecasts von Listenelementen zu Objekten explizit aufgeführt werden mussten. Siehe hierfür Beispiel 2.

5.1. Beispiel 1

5.2. Beispiel 2


6. Wie funktionieren Generics?

Zur Laufzeit wird eine Klasse erzeugt, die dann durch die gewünschte Typ-Variable substituiert wird.


7. Welche Typen von Generics gibt es?

Generics an Klassen:

Das <T> entspricht der Deklaration eines generischen Datentyps.

Generics an Methoden:

Das <T> ist der definierte generische Datentyp. Das T danach ist der Rückgabetyp der Methode und die T's in der Parameterliste, sind die Übergabeparameter.


8. Wie kann man Datentypen mit Generics verwenden?

Hier ein Beispiel für den Einsatz von Generics.


9. Welche Neuerungen gibt es?

Seit Java 1.7 existiert der Diamond-Operator, wodurch der Typ nur auf einer Seite der Deklaration angegeben werden muss.


Stand: 5. November 2013