Video: JAVA Grundkurs #12 - Generische Typen [Tutorial] 2024
Eine generische Klasse in Java ist eine Klasse, die mit einem bestimmten Typ arbeiten kann, der vom Programmierer beim Kompilieren angegeben wird. Zeit. Um dies zu erreichen, verwendet die Klassendefinition den -Typparameter s , der als Variable dient, die Typen darstellen (wie int oder String).
Um eine generische Klasse zu erstellen, listen Sie den Typparameter nach dem Klassennamen in spitzen Klammern auf. Der type-Parameter gibt einen Namen an, den Sie überall dort verwenden können, wo Sie sonst einen Typ verwenden würden. Hier ist zum Beispiel eine vereinfachte Version der Klassendeklaration für die ArrayList-Klasse:
public class ArrayList
Ich habe die Klauseln extends und implements weggelassen, um auf den formalen type-Parameter zu fokussieren:. Der Parameter E gibt den Typ der Elemente an, die in der Liste gespeichert sind.
Um eine Instanz einer generischen Klasse zu erstellen, müssen Sie den tatsächlichen Typ angeben, der anstelle des type-Parameters verwendet werden soll:
ArrayList myArrayList;
Hier ist der E-Parameter String, daher ist der Elementtyp für diese Instanz der ArrayList-Klasse String.
Betrachten Sie nun die Deklaration für die add-Methode für die ArrayList-Klasse:
public boolean add (E o) {// Rumpf der Methode ausgelassen (danke)}
Wo Sie sich befinden normalerweise erwarten Sie, einen Parametertyp zu sehen, Sie sehen den Buchstaben E. Somit gibt diese Methodendeklaration an, dass der Typ für den o-Parameter der Typ ist, der für den formalen Typparameter E angegeben wurde. Wenn E ist String, akzeptiert die add-Methode nur String-Objekte.. Wenn Sie die add-Methode aufrufen, die einen anderen als einen String-Parameter übergibt, generiert der Compiler eine Fehlermeldung.
Sie können auch einen Typparameter als Rückgabetyp verwenden. Hier ist die Deklaration für die Get-Methode der ArrayList-Klasse:
public E get (int index) {// Text der Methode weggelassen (gerne gesehen)}
Hier wird E als Rückgabetyp angegeben. Das heißt, wenn E String ist, gibt diese Methode String-Objekte zurück.
Der Hauptvorteil von Generics besteht darin, dass die Typprüfung zur Kompilierzeit stattfindet. Nachdem Sie den Wert eines formalen Typparameters angegeben haben, weiß der Compiler, wie die vom Parameter implizierte Typüberprüfung ausgeführt wird. So weiß sie nicht, dass Sie einer Employee-Sammlung String-Objekte hinzufügen können.