@parkito

Как запретить модифицировать данные массива через геттер?

Здравствуйте. Помогите, пожалуйста, решить проблему. Дан код, в котором через геттер изменяется массив. Какими способами можно запретить такое изменение через геттер?

class two {
    private final List<Integer> array = new ArrayList();

    public final List<Integer> getArray() {
        return array;
    }


    @Override
    public String toString() {
        return "two{" +
                "array=" + array +
                '}';
    }
}

public class one {
    public static void main(String[] args) {
        two tw = new two();
        System.out.println(tw);
        tw.getArray().add(1);
        tw.getArray().add(2);
        tw.getArray().add(3);
        System.out.println(tw);

    }
}
  • Вопрос задан
  • 2175 просмотров
Пригласить эксперта
Ответы на вопрос 2
@Avrelio
Collections.unmodifiableList(List);
Ответ написан
Комментировать
@ZzeroCool
Learn Java Core, Spring, Hibernate
Мне кажется в вашем случае надо посмотреть в сторону паттерна Одиночка (Singleton). Ибо возврат созданной копии, по-моему все таки костыль.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы