Sobes.tech
Junior — Middle

Können Sie ein konkretes Beispiel für die Anwendung des PECS-Prinzips in der Softwareentwicklung geben?

sobes.tech KI

Antwort von AI

Das PECS-Prinzip (Producer Extends, Consumer Super) hilft dabei, Generics in Java richtig zu verwenden, um Flexibilität und Typsicherheit beim Arbeiten mit Sammlungen zu gewährleisten.

Beispiel: Wenn eine Methode eine Sammlung akzeptieren soll, aus der sie nur Objekte liest (Produzent), wird der Typparameter mit extends deklariert. Wenn die Methode nur Objekte zur Sammlung hinzufügt (Verbraucher), verwendet man super.

import java.util.List;

// Methode, die Elemente aus einer Liste liest (Produzent)
public void processElements(List<? extends Number> list) {
    for (Number n : list) {
        System.out.println(n);
    }
}

// Methode, die Elemente zu einer Liste hinzufügt (Verbraucher)
public void addElements(List<? super Integer> list) {
    list.add(10);
    list.add(20);
}

Hier garantiert List<? extends Number>, dass man Elemente sicher als Number lesen kann, aber keine neuen hinzufügen darf, während List<? super Integer> das Hinzufügen von Integer und seinen Subklassen erlaubt, aber das Lesen Object zurückgibt.