Как анонимные классы скомпилированы в Java?

Я слышал, что байт-код Java фактически не поддерживает никаких неназванных классов. Как javac переводит классы nonamned в именованные?

Ответ 1

Он синтезирует имя формы EnclosingClass$n, где "n" является счетчиком анонимных классов в EnclosingClass. Поскольку использование $ в идентификаторах не рекомендуется, эти имена не должны сталкиваться с любыми указанными пользователем именами.