Пожалуйста, объясните окончательный AtomicReference
Может кто-нибудь объяснить мне это:
final AtomicReference<Integer> atomicReference = new AtomicReference<>(1);
atomicReference.set(2);
В каком смысле окончательно используется?
4 ответа
В каком смысле окончательно используется?
Сама переменная является окончательной. Вы не можете изменить значение переменной для ссылки на другой AtomicReference
объект.
призвание set
на объекте и, следовательно, изменение данных в объекте совсем не одно и то же.
Чтобы выразить это в более реальных терминах, я могу дать вам мой домашний адрес и сказать: "Вы не можете изменить то место, где я живу". Это не мешает вам покрасить мою входную дверь в зеленый цвет (т.е. внести изменения в дом, на который ссылается адрес).
final
не позволяет вам изменить переменную для ссылки на другой экземпляр.
Это не мешает вам мутировать существующий экземпляр.
Это означает, что вы не можете писать
atomicReference = something;
final
Значит это atomicReference
не может ссылаться на другого AtomicReference
больше.
final
просто означает, что переменная / объект не может быть переназначена.
Но вы можете изменить свой объект через сеттер, например
Проверьте это: