Junior — Middle
Czy może Pan/Pani podać konkretny przykład zastosowania zasady PECS w rozwoju oprogramowania?
sobes.tech AI
Odpowiedź od AI
Zasada PECS (Producer Extends, Consumer Super) pomaga poprawnie korzystać z generyków w Javie, zapewniając elastyczność i bezpieczeństwo typów podczas pracy z kolekcjami.
Przykład: jeśli metoda ma przyjmować kolekcję, z której tylko odczytuje obiekty (producent), parametr typu deklaruje się jako extends. Jeśli metoda tylko dodaje obiekty do kolekcji (konsument), używa się super.
import java.util.List;
// Metoda odczytująca elementy z listy (Producent)
public void processElements(List<? extends Number> list) {
for (Number n : list) {
System.out.println(n);
}
}
// Metoda dodająca elementy do listy (Konsument)
public void addElements(List<? super Integer> list) {
list.add(10);
list.add(20);
}
Tutaj List<? extends Number> gwarantuje, że można bezpiecznie odczytywać elementy jako Number, ale nie można dodawać nowych, natomiast List<? super Integer> pozwala na dodawanie Integer i jego podklas, ale odczyt zwraca Object.