Sobes.tech
Назад к вопросам
Junior — Middle
72

Каким образом можно сделать так, чтобы массив, возвращаемый через getter, не мог быть изменен извне?

Компании, где спрашивали
СБЕРСБЕР

Ответ от нейросети

sobes.tech AI

Чтобы массив, возвращаемый через геттер, нельзя было изменить извне, нужно возвращать не сам внутренний массив, а его копию. Иначе внешний код получит ссылку на тот же массив и сможет изменить его содержимое.

Пример:

public class MyClass {
    private int[] data;

    public MyClass(int[] data) {
        this.data = data.clone(); // копируем при сохранении
    }

    public int[] getData() {
        return data.clone(); // возвращаем копию, чтобы защитить внутреннее состояние
    }
}

Такой подход гарантирует, что изменения массива, полученного через геттер, не повлияют на внутреннее состояние объекта.