У меня есть один класс с различными переменными-членами. Есть конструктор и есть методы-геттеры, но нет методов-сеттеров. Фактически, этот объект должен быть неизменным.
public class Example {
private ArrayList<String> list;
}
Теперь я заметил следующее: когда я получаю список переменных с помощью метода получения, я могу добавлять новые значения и так далее - я могу изменить ArrayList
. Когда я в следующий раз вызываю get ()
для этой переменной, возвращается измененный ArrayList
. Как это может быть? Повторно не ставил, просто поработал!
Для String
такое поведение невозможно. Так в чем разница?