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

关于kotlin - 在 Kotlin 中带有参数的单例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33128024/

相关文章:

hibernate - 如何在 gradle 中启用 Hibernate Bytecode 增强

linux - 构建Shadowsocks android gituhub代码时出错

android - 在 Kotlin Coroutines 生产者内部处理取消

json - 如何将 @kotlinx.serialization.Serializable 与 java.time.Instant 一起使用?

java - cameraIdList 中缺少相机

kotlinx 序列化类标记为 @Serializable 没有 .serializer() 扩展函数

android - 如何将onClick,onLongClick和onTouch实现到一个 View

kotlin - 可空 bool 值的Kotlin Arrow

android - 如何从 Android Studio 运行单个 Kotlin 类

Android Studio中的日期和时间(科林语言)