14 Generics in Java

14.1 Einführung

Generics in Java ermöglichen die Typparametrisierung von Klassen, Schnittstellen und Methoden. Sie bieten stärkere Typsicherheit und eliminieren das Bedürfnis für explizite Typumwandlungen.

14.2 Grundlegende Syntax

public class Box<T> {
    private T content;

    public void set(T content) {
        this.content = content;
    }

    public T get() {
        return content;
    }
}

14.3 Typbeschränkungen

Es ist möglich, Typen für Generics einzuschränken.

public class NumericBox<T extends Number> {
    private T content;
    // ...
}

14.4 Wildcards

Wildcards ermöglichen die Flexibilität in der Verwendung generischer Typen.

public void processBoxes(List<? extends Number> boxes) {
    // ...
}

14.5 Generische Methoden

Methoden können unabhängig von Klassen generisch sein.

public <T> void printArray(T[] array) {
    for (T element : array) {
        System.out.print(element + " ");
    }
    System.out.println();
}

14.6 Typableitung

Der Compiler kann oft den richtigen generischen Typ ableiten.

Box<Integer> integerBox = new Box<>();

14.7 Nutzen

Generics sind ein leistungsstarkes Feature, das die Qualität und Wartbarkeit des Codes erheblich verbessern kann. Sie sind in der modernen Java-Entwicklung allgegenwärtig und ermöglichen die Erstellung robuster und flexibler Softwarekomponenten.