Singleton with parameter in Kotlin

后端 未结 11 1152
无人及你
无人及你 2020-11-30 21:51

I am trying to convert an Android app from Java to Kotlin. There are a few singletons in the app. I used a companion object for the singletons without constructor parameters

11条回答
  •  时光说笑
    2020-11-30 22:22

    You can declare a Kotlin object, overloading "invoke" operator.

    object TasksLocalDataSource: TasksDataSource {
        private lateinit var mDbHelper: TasksDbHelper
    
        operator fun invoke(context: Context): TasksLocalDataSource {
            this.mDbHelper = TasksDbHelper(context)
            return this
        }
    }
    

    Anyway I think that you should inject TasksDbHelper to TasksLocalDataSource instead of inject Context

提交回复
热议问题