Sobes.tech
Junior — Middle

Comment la structure de l'objet compagnon est-elle transformée en bytecode lors de la compilation en Kotlin?

sobes.tech IA

Réponse de l'IA

En Kotlin, companion object est compilé en une classe imbriquée statique à l'intérieur de la classe externe. Lors de la compilation, une classe séparée est créée avec un nom, par exemple, OuterClass$Companion, qui contient tous les membres du companion object sous forme de méthodes et champs statiques.

De plus, dans la classe externe elle-même, un champ statique Companion est créé, qui fait référence à la seule instance de cette classe imbriquée. Cela permet d'accéder aux membres du companion object via OuterClass.Companion ou directement, si importé.

Ainsi, companion object implémente le pattern singleton et des membres statiques, compatibles avec JVM, via une classe imbriquée séparée et un champ statique de référence.