Я думаю, что вы пытаетесь достичь, лучше всего сделать с помощью функции lazy
, чтобы лениво инициализировать значение при первом запросе.Подробнее см. здесь .
например,
companion object {
val instance: GameDAO by lazy { GameDAO() }
}
Вам не нужна отдельная функция getInstance
: вы можете просто получить доступ к свойству instance
напрямую,и он будет инициализирован при первом запросе (потокобезопасным способом).
Это предполагает, что вы хотите, чтобы объект был инициализирован только при первом запросе (то есть, с ленивой инициализацией).Если вы хотите, чтобы он всегда создавался, вы можете просто создать его и немедленно назначить его переменной / свойству.