Имеет ли экземпляр анонимного внутреннего класса все доступные конечные переменные или хранит только переменные, которые используются внутри указанного внутреннего класса? (т. е. выполняет ли какой-то анализ? Насколько я знаю, ссылка на родительский экземпляр хранится независимо от того, что.)Java anonymous внутренний класс
ответ
Ссылка на класс-класс хранится независимо от того, что.
Конечные переменные хранятся в виде копии, но только если вы действительно ссылаетесь на них где-то в своем внутреннем классе. Это не требует особого «анализа», но может быть сделано на обычном этапе компиляции (компилятор должен все равно разрешить переменную, поэтому он также может вывести код для настройки копии).
Хорошо, я просто заявляю об этом без каких-либо ссылок. Возможно, кто-то может заполнить дамп байт-кода для минимального скомпилированного класса для демонстрации. – Thilo
Вот один такой дамп, но он не отвечает на вопрос о переменных, которые не нужны: http://stackoverflow.com/a/2804940/14955 – Thilo
Очень вероятно, что компилятор, который сохранил все локальные вары, все равно быть совместимым со спецификацией. Другими словами, обсуждаемое поведение в принципе зависит от реализации. На практике вы на 100% правы, так как никакой здравомыслящий компилятор фактически не собирается хранить больше, чем необходимо. –
- 1. Java anonymous внутренний класс списка
- 2. java anonymous внутренний класс недостижимый код
- 3. Java singleton внутренний класс
- 4. Java внутренний класс использования
- 5. Java-интерфейс Внутренний класс
- 6. Java внутренний класс это
- 7. Внутренний класс в Java
- 8. javafx Anonymous Класс приложения
- 9. Java Внутренний доступ класс слушателя другой внутренний класс, назвав его
- 10. Внутренний статический класс в Java
- 11. Java внутренний класс видимость головоломка
- 12. Java дженериков захватить внутренний класс
- 13. Java: статический и внутренний класс
- 14. Внутренний класс исполняемым в Java
- 15. Java Singleton + внутренний класс missunderstand
- 16. Проблемы, наследующие внутренний класс java
- 17. Java Внешний класс расширяет статический внутренний класс
- 18. Anonymous ActionListener Класс Exception "NullPointerException"
- 19. Аннотировать анонимный внутренний класс
- 20. Сформировать внутренний класс
- 21. внутренний класс расширения
- 22. java внутренний класс private constructor, public members
- 23. параметры типа Запись в Java внутренний класс
- 24. Java внутренний класс новый экземпляр не создается
- 25. общедоступный анонимный внутренний класс в Java
- 26. Java: Внутренний класс интерфейса (из google guice)
- 27. Как переопределить внутренний класс в Java?
- 28. Внутренний класс в java в двунаправленном списке
- 29. внутренний класс не конечная переменная java
- 30. Java: Внутренний класс внутри внутреннего класса
Я считаю, что эта тема может быть полезна: http: //stackoverflow.com/questions/4732544/why-are-only-final-variables-accessible-in-anonymous-class –
Повторно открывается, потому что связанная нить не ответьте на вопрос, сколько из этих конечных переменных скопировано. – Thilo