В настоящее время я готовлю CJP S (O) с книгой Sierra и Bates.
О внутренних классах (метод локальный или анонимный), они говорят, что мы не можем получить доступ к локальным переменным, потому что они живут в стеке, пока класс живет в куче, и может быть возвращен методом, а затем попытаться получить доступ к этим переменным, которые находятся в стеке, но больше не существуют, поскольку метод закончился...
Как мы все знаем, мы можем обойти это, используя ключевое слово final. Это то, что они говорят в книге, но они действительно не объясняют, каков эффект этого финального ключевого слова... Насколько я знаю, использование конечного ключевого слова в методе локальной переменной не делает его живым в куче... Итак, как класс мог бы получить доступ к конечной переменной, которая все еще живет в стеке, пока не может быть больше стека???
Я предполагаю, что внутри внутреннего класса должна быть какая-то "копия" этой конечной локальной переменной. Поскольку значение не может измениться, почему бы не дублировать эту информацию... Может кто-то подтвердить это или сказать мне, если я что-то упустил?