Sobes.tech
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.