Синглтон - init не вызывается

Я хочу создать синглтон в Kotlin, поэтому я сделал объект-компаньон следующим образом:

companion object { 
    val INSTANCE = MessagesManager()
}

Есть кое-что, что я хочу сделать в его конструкторе, поэтому я написал некоторый код в функции init, но он никогда не запускается, если я не использую Singleton. Я также пытался использовать аннотацию JVMField, но она не работает. Я хочу, чтобы запуск init запускался сразу после запуска.

1 ответ

init{} Блок будет вызван при загрузке класса.

Таким образом, вы должны получить доступ к этому классу хотя бы один раз после запуска.

И, есть более удобный способ сделать синглтон в Котлине, как показано ниже.

object MessageManager {}
Другие вопросы по тегам