Во-первых, A
не является неизменным с вашей стороны, просто объявите его final
.
Затем окончательные переменные не могут быть изменены.Если obj1
является полем, это обеспечивает изменчивость (в отличие от final class
).
Если это локальная переменная, это означает, что вы можете безопасно использовать ее в анонимных классах (иначе компилятор не может быть уверен, что он не получит изменения иногда до / во время выполнения тела анонимного класса)