Avatar ·

Kotlin中object和companion object的区别是什么?示例

大家好!我开始学习Kotlin,但一直无法理解类内部普通object和companion object之间的区别。 假设我写一个简单的数据库操作类: ```kotlin class DatabaseManager { object Config { val HOST = "localhost" val PORT = 5432 } companion object { fun create(): DatabaseManager = DatabaseManager() } } ``` 我看到这两种方式都创建了类似Java中静态成员的东西。但为什么需要两种不同的机制?什么时候该用object,什么时候该用companion object? 也许在继承、序列化或从Java访问方面有一些细微差别?希望能得到带示例的详细解释。 <<>>

关键区别:object是单例,companion object是类的静态成员

在Kotlin中,object和companion object解决不同的问题,尽管乍看之下它们很相似。让我们逐一分析每种情况。