Senior
¿Cómo protegerse de la mutación a través del getter (devolver una copia de la lista)?
sobes.tech AI
Respuesta de la IA
Чтобы защититься от мутации внутреннего списка через геттер, возвращайте не сам список, а его копию. Это предотвращает изменение оригинального списка извне.
Пример на 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);
}
Это позволит прочитать данные, но при попытке модификации выбросит исключение.