Sobes.tech
Junior — Middle
99

Kako učiniti da niz, vraćen putem getter-a, ne može biti izmenjen spolja?

Компаније где су питане
СБЕРСБЕР

Одговор од АИ

sobes.tech АИ

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

Пример:

public class MyClass {
    private int[] data;

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

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

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