Generics <E> in Java

Rupam Yadav 12 Oktober 2023
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 Yadav avatar Rupam Yadav avatar

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

Verwandter Artikel - Java Generics