Junior — Middle
Explique o que significa o princípio PECS na área de desenvolvimento de software
sobes.tech IA
Resposta da IA
O princípio PECS (Producer Extends, Consumer Super) ajuda a usar corretamente a covariância e a contravariância em genéricos Java ao trabalhar com coleções.
- Producer Extends (PE): se um objeto atua como fonte de dados (produtor), use
? extends T. Isso permite ler objetos do tipo T ou seus subtipos. - Consumer Super (CS): se um objeto atua como consumidor de dados, use
? super T. Isso permite escrever objetos do tipo T ou seus subtipos.
Exemplo:
List<? extends Number> producer = new ArrayList<Integer>();
Number num = producer.get(0); // pode ler
// producer.add(10); // erro, não pode adicionar
List<? super Integer> consumer = new ArrayList<Number>();
consumer.add(10); // pode adicionar
Object obj = consumer.get(0); // leitura retorna Object
Assim, o PECS ajuda a evitar erros de tipos ao trabalhar com coleções genéricas, garantindo segurança e flexibilidade ao código.