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.