Sobes.tech
Назад к вопросам
Junior — Middle
70

Можете привести конкретный пример применения принципа PECS в разработке программного обеспечения?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Принцип PECS (Producer Extends, Consumer Super) помогает правильно использовать обобщения (generics) в Java для обеспечения гибкости и безопасности типов при работе с коллекциями.

Пример: если метод должен принимать коллекцию, из которой он только читает объекты (производитель), то параметр типа объявляют с extends. Если метод только добавляет объекты в коллекцию (потребитель), то используют super.

import java.util.List;

// Метод, который читает элементы из списка (Producer)
public void processElements(List<? extends Number> list) {
    for (Number n : list) {
        System.out.println(n);
    }
}

// Метод, который добавляет элементы в список (Consumer)
public void addElements(List<? super Integer> list) {
    list.add(10);
    list.add(20);
}

Здесь List<? extends Number> гарантирует, что можно безопасно читать элементы как Number, но нельзя добавлять новые, а List<? super Integer> позволяет добавлять Integer и его подклассы, но чтение возвращает Object.