Junior — Middle
Pouvez-vous donner un exemple concret de l'application du principe PECS dans le développement de logiciels?
sobes.tech IA
Réponse de l'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.