AP2Lernhub
Niedrig

Generische Klassen

Typparameter, Templates – vorwiegend in Sprachvergleichen.

Warum Priorität „Niedrig"? Selten oder als Randthema (unter 40%). Überblick reicht meist.

Lernziele

  • Typparameter und generische Klassen/Methoden nutzen
  • Bounded Generics und Wildcards einordnen
  • Vorteile (Typsicherheit, Wiederverwendung) und Grenzen (Type Erasure) benennen

Grundidee

  • Typparameter <T> macht Klasse/Methode unabhängig vom konkreten Typ.
  • Typsicherheit zur Compile-Zeit – unsichere Casts entfallen.
  • Bounded Generics: <T extends Number> schränkt auf Number und Unterklassen ein.
  • Wildcards (Java): ? extends T (Lesen), ? super T (Schreiben) – PECS-Regel.
  • Type Erasure in Java: Typinfo wird zur Laufzeit entfernt – new T() geht nicht.

Beispiel

javaGenerische Klasse + bounded Methode
public class Box<T> {
    private T inhalt;
    public void setzen(T t) { this.inhalt = t; }
    public T holen() { return inhalt; }
}

Box<String> b = new Box<>();
b.setzen("Hallo");

public static <T extends Number> double summe(List<T> xs) {
    double s = 0;
    for (T x : xs) s += x.doubleValue();
    return s;
}

TypeScript-Pendant:

ts
class Box<T> {
  constructor(public inhalt: T) {}
}
const b = new Box<string>("Hallo");

Übungen

Eine AntwortWofür steht `<T extends Number>`?

Eine AntwortWas ist der Hauptvorteil von Generics?

Verwandte Themen