Добрый день! Читала код в лекции, есть класс Owner:
public class Owner {
private String name;
private List<Animal> pets = new ArrayList<>();
public Owner(String name) {
this.name = name;
}
public List<Animal> getPets() {
return pets;
}
}
В основном коде вызывают геттер и к результату применяют метод addAll():
public class Selector {
private static List<Owner> owners;
private static void initData() {
final Owner owner1 = new Owner("Олег Малашков");
owner1.getPets().addAll(List.of(
new Cat("Барон", Color.BLACK, 3),
new Cat("Султан", Color.DARK_GREY, 4),
new Dog("Эльза", Color.WHITE, 0)
));
final Owner owner2 = new Owner("Дмитрий Васильков");
owner2.getPets().addAll(List.of(
new Cat("Рыжик", Color.FOXY, 7),
new Cat("Барсик", Color.FOXY, 5),
new Parrot("Адмирал", Color.BLUE, 3)
));
Подскажите, пожалуйста, в этом случае создается копия list? Кажется, странным, что геттер используют для изменения изначального состояния списка