Назад к вопросам
СБЕР
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.