Назад к вопросам
Senior
4
Как защититься от мутации через геттер (возврат копии списка)?
Компании, где спрашивали
РТЛабс
Ответ от нейросети
sobes.tech AI
Чтобы защититься от мутации внутреннего списка через геттер, возвращайте не сам список, а его копию. Это предотвращает изменение оригинального списка извне.
Пример на 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);
}
Это позволит прочитать данные, но при попытке модификации выбросит исключение.