Упражнения по Pecs: какая их роль и как их делать правильно
PECS (Producer-Extends, Consumer-Super) - это принцип обобщения типа в Java, который используется при работе с коллекциями и типизированными классами, чтобы обеспечить безопасность типов.
Принцип PECS гласит: когда работают с коллекцией, используйте extends для чтения элементов из коллекции и super для записи элементов в коллекцию.
Пример кода:
class Animal {}
class Dog extends Animal {}
class Cat extends Animal {}
class Zoo
private List super T> animalList = new ArrayList<>();
public void add(T animal) {
animalList.add(animal);
}
public void remove(T animal) {
animalList.remove(animal);
}
public void printAnimals() {
for (Object animal : animalList) {
System.out.println(animal);
}
}
}
В этом примере класс Zoo работает с коллекцией animalList, используя extends и super. Метод add использует super для добавления элемента в коллекцию, а метод remove использует тот же принцип для удаления элемента. Метод printAnimals использует extends для чтения элементов из коллекции, поскольку он просто отображает их без изменения.
Применение PECS позволяет избежать ошибок компиляции и раннее обнаружение типов, которые не совместимы. Это помогает обеспечить безопасность типов в Java и упрощает процесс разработки.