Sobes.tech
Senior
43

Getter aracılığıyla mutasyondan nasıl korunulur (liste kopyası döndürmek)?

Sorulan şirketler
РТЛабс

AI'dan gelen yanıt

sobes.tech yapay zeka

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

Пример на Java:

public class MyClass {
    private final List<String> items = new ArrayList<>();

    public List<String> getItems() {
        return new ArrayList<>(items); // возвращаем копию
    }

    // методы для изменения items внутри класса
}

Таким образом, если кто-то вызовет getItems() и попытается изменить возвращённый список, оригинальный items останется неизменным.

Альтернативно, можно возвращать неизменяемый список:

import java.util.Collections;

public List<String> getItems() {
    return Collections.unmodifiableList(items);
}

Это позволит прочитать данные, но при попытке модификации выбросит исключение.