Sobes.tech
Junior — Middle

De que forma a estrutura do objeto companion é transformada em bytecode durante o processo de compilação em Kotlin?

sobes.tech IA

Resposta da IA

No Kotlin, companion object é compilado numa classe estática aninhada dentro da classe externa. Durante a compilação, é criada uma classe separada com um nome, por exemplo, OuterClass$Companion, que contém todos os membros do companion object como métodos e campos estáticos.

Além disso, na própria classe externa, é criado um campo estático Companion, que referencia a única instância dessa classe aninhada. Isso permite acessar os membros do companion object através de OuterClass.Companion ou diretamente, se importado.

Assim, companion object implementa o padrão singleton e membros estáticos, compatíveis com JVM, através de uma classe aninhada separada e um campo estático de referência.