Мы знаем, что только конечные локальные переменные могут быть доступны в анонимном классе, и здесь есть веская причина: Почему только конечные переменные доступны в анонимном классе?.
Однако я обнаружил, что анонимный класс может получить доступ к переменной, отличной от конечной, если переменная является полем-членом класса-оболочки: Как я могу получить доступ к переменным экземпляра класса класса из внутри анонимного класса?
Я смущен. Мы гарантируем доступ только к конечной локальной переменной в анонимном классе, потому что мы не хотим, чтобы переменная была несинхронизирована между анонимным классом и локальной функцией. Та же причина должна быть применима к этому случаю, если мы попытаемся получить доступ к члену класса, не входящему в класс, в анонимном классе.
Почему это не вызывает беспокойства?