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