Junior — Middle
¿Puede dar un ejemplo concreto de la aplicación del principio PECS en el desarrollo de software?
sobes.tech AI
Respuesta de la IA
Принцип 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.