Avatar ·

Quelle est la différence entre object et companion object en Kotlin ? Exemples

Bonjour à tous ! J'ai commencé à apprendre Kotlin et je n'arrive pas à comprendre la différence entre un object ordinaire à l'intérieur d'une classe et un companion object. Supposons que j'écrive une classe simple pour travailler avec une base de données : ```kotlin class DatabaseManager { object Config { val HOST = "localhost" val PORT = 5432 } companion object { fun create(): DatabaseManager = DatabaseManager() } } ``` Je vois que les deux options créent quelque chose de similaire aux membres statiques en Java. Mais pourquoi alors deux mécanismes différents ? Quand faut-il utiliser object, et quand companion object ? Peut-être y a-t-il des subtilités avec l'héritage, la sérialisation ou l'accès depuis Java ? Je serais reconnaissant pour une explication détaillée avec des exemples. <<>>

Différence clé : object est un singleton, companion object est un membre statique de la classe

En Kotlin, object et companion object résolvent des problèmes différents, bien qu'ils semblent similaires à première vue. Examinons chaque cas