Generics <E> in Java
Generics
wurden in Java 5 hinzugefügt, um die Abstraktion zu verbessern und eine Möglichkeit bereitzustellen, eine Methode, Schnittstelle oder einzelne Klasse mit unterschiedlichen Objekten oder Datentypen zu verwenden.
Es gibt eine gemeinsame Namenskonvention in Bezug auf Generics
, wie z. B. T
für Typ steht und V
für Wert verwendet wird. Wir sehen uns E
an, einen anderen Typparameternamen, der in Generics
verwendet wird und in diesem Artikel normalerweise für Element steht.
Verwenden von Generics
<E>
in Java zum Erstellen einer neuen Liste
Der beste Weg, Generics
zu verstehen, ist die Verwendung einer Collection, denn ohne Generics
brauchten Collections wie Listen früher viel Code zum Schreiben. Dennoch können wir nach der Einführung von Generics
mit sehr wenig Code eine List
oder jede andere Sammlung erstellen.
Der generische Name <E>
steht für Element und wird häufig im Java Collections Framework verwendet. Im folgenden Beispiel erstellen wir eine statische Methode namens newListWithElements()
, die einen generischen Parameter vom Typ E
mit dem variablen Argumentoperator ...
namens listElements
akzeptiert.
Die Methode newListWithElements()
gibt eine List
vom Typ <E>
zurück, die ein generischer Typparameter ist. Wir verwenden auch einen Typparameter vor dem Rückgabetyp und nach static
oder einem beliebigen Zugriffsmodifikator mit einer generischen Methode.
Innerhalb der Funktion erstellen wir eine int
-Variable listElementsSize
und initialisieren sie mit der Länge des Parameters listElements
. Wenn es null
ist, initialisieren wir es mit Null.
Dann erstellen wir einen ArrayList
-Konstruktor und übergeben listElementsSize
, das ist die Grösse der List
, die eine List
vom Typ <E>
zurückgibt.
Nun sammeln wir alle listElements
-Elemente und erstellen mit Collections.addAll()
eine neue Liste, die alle Elemente der neuen Liste listOfElements
hinzufügt. Wir haben eine neue Liste, die wir von der Methode zurückgeben.
In der Funktion main()
rufen wir dreimal newListWithElement()
mit Typen wie String
, Integer
und Boolean
auf. Generics
ermöglichen es, mit einer einzigen Methode eine Liste mehrerer Objekttypen zu erstellen.
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class JavaEGenerics {
public static void main(String[] args) {
List<String> newStringList = newListWithElements("element1", "element2", "element3");
List<Integer> newIntList = newListWithElements(11, 12, 13);
List<Boolean> newBooleanList = newListWithElements(true, false);
System.out.println(newStringList);
System.out.println(newIntList);
System.out.println(newBooleanList);
}
static <E> List<E> newListWithElements(E... listElements) {
int listElementsSize = 0;
if (listElements != null)
listElementsSize = listElements.length;
List<E> listOfElements = new ArrayList<>(listElementsSize);
if (listElements != null)
Collections.addAll(listOfElements, listElements);
return listOfElements;
}
}
Ausgabe:
[element1, element2, element3]
[11, 12, 13]
[true, false]
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn