Sobes.tech
Junior — Middle

Можете ли дати конкретан пример примене принципа PECS у развоју софтвера?

sobes.tech АИ

Одговор од АИ

Princip PECS (Producer Extends, Consumer Super) pomaže pravilno korišćenje generika u Javi za obezbeđivanje fleksibilnosti i sigurnosti tipova pri radu sa kolekcijama.

Primer: ako metoda treba da prihvati kolekciju iz koje samo čita objekte (proizvođač), parametar tipa se deklariše sa extends. Ako metoda samo dodaje objekte u kolekciju (potrošač), koristi se super.

import java.util.List;

// Metod koji čita elemente iz liste (Proizvođač)
public void processElements(List<? extends Number> list) {
    for (Number n : list) {
        System.out.println(n);
    }
}

// Metod koji dodaje elemente u listu (Potrošač)
public void addElements(List<? super Integer> list) {
    list.add(10);
    list.add(20);
}

Ovde, List<? extends Number> garantuje da je sigurno čitati elemente kao Number, ali ne i dodavati nove, dok List<? super Integer> omogućava dodavanje Integer i njegovih podklasa, ali čitanje vraća Object.