kotlin - 在 Kotlin 中带有参数的单例

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}")
    }
}

https://stackoverflow.com/questions/33128024/

相关文章:

android - Kotlin - 如何在 ViewPager 中添加 OnPageChangeL

kotlin - 如何在 Kotlin 中替换字符串中的重复空格?

kotlin - 在 Kotlin 中处理可为空或空列表的惯用方式

kotlin - Kotlin中调用父类(super class)构造函数,Super不是表达式

android - 更新到 AS 3.0 Canary 6 后 transformClassesWi

annotations - Kotlin 注释 IntDef

android - 监听器绑定(bind);找不到二传手

java - 使用 JPA Criteria API 进行分页的总行数

exception - Kotlin - 抛出自定义异常

arrays - Kotlin:For 循环必须有一个迭代器方法——这是一个错误吗?