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