Singleton with argument in Kotlin

前端 未结 5 1008
醉酒成梦
醉酒成梦 2020-12-05 23:35

The Kotlin reference says that I can create a singleton using the object keyword like so:

object DataProviderManager {
  fun registerDataProvider(pr         


        
5条回答
  •  温柔的废话
    2020-12-05 23:45

    Kotlin has a feature called Operator overloading, letting you pass arguments directly to an object.

    object DataProviderManager {
      fun registerDataProvider(provider: String) {
          //
      }
    
      operator fun invoke(context: ApplicationContext): DataProviderManager {
          //...
          return this
      }
    }
    
    //...
    val myManager: DataProviderManager = DataProviderManager(someContext)
    

提交回复
热议问题