单例-不调用init

时间:2019-02-13 11:04:18

标签: android kotlin singleton companion-object

我想在Kotlin中创建一个单例,所以我做了一个伴侣对象:

companion object { 
    val INSTANCE = MessagesManager()
}

我想在其构造函数中执行一些操作,因此我在init函数中编写了一些代码,但是如果我不使用Singleton,它将永远不会运行。 我也尝试使用JVMField批注,但是它不起作用。 我希望初始化运行将在启动后立即运行。

1 个答案:

答案 0 :(得分:0)

加载该类时,将调用

init{}块。

因此,您必须在启动后至少访问一次该类。

而且,有一种更舒适的方式可以在Kotlin中制作Singleton,如下所示。

object MessageManager {}