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.