Junior — Middle
Pode dar um exemplo concreto da aplicação do princípio PECS no desenvolvimento de software?
sobes.tech IA
Resposta da 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.