Sobes.tech
Junior — Middle
92

Kotlin-дағы companion object құрылымы байткодқа қалай компиляцияланады?

Сұралған компаниялар
Спецвузавтоматика

AI-дан жауап

sobes.tech AI

В Kotlin companion object компилируется в статический вложенный класс внутри внешнего класса. При компиляции создаётся отдельный класс с именем, например, OuterClass$Companion, который содержит все члены companion object как статические методы и поля.

Кроме того, в самом внешнем классе создаётся статическое поле Companion, которое ссылается на единственный экземпляр этого вложенного класса. Это позволяет обращаться к членам companion object через OuterClass.Companion или напрямую, если импортировать.

Таким образом, companion object реализует паттерн синглтон и статические члены, совместимые с JVM, через отдельный вложенный класс и статическое поле-ссылку.