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