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解决不同的问题,尽管乍看之下它们很相似。让我们逐一分析每种情况。