Kotlin reference说我可以像这样使用 object 关键字创建一个单例:
object DataProviderManager {
fun registerDataProvider(provider: DataProvider) {
//
}
}
但是,我想向该对象传递一个参数。例如 Android 项目中的 ApplicationContext。
有没有办法做到这一点?
最佳答案
由于对象没有构造函数,我做了以下操作来在初始设置中注入(inject)值。您可以随心所欲地调用该函数,并且可以随时调用它来修改值(或根据您的需要重构单例)。
object Singleton {
private var myData: String = ""
fun init(data: String) {
myData = data
}
fun singletonDemo() {
System.out.println("Singleton Data: ${myData}")
}
}
关于kotlin - 在 Kotlin 中带有参数的单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33128024/