Мое текущее приложение Android использует Koin для внедрения зависимостей. У меня есть база данных Room, предоставленная модулем koin, и я wi sh для инициализации val Kotlin объектов из моей базы данных.
Метод выборки из базы данных - это метод приостановки
Мой Kotlin код объектов похож на это: -
object MyObject: CoroutineScope by GlobalScope, KoinComponent {
private val database: MyRoomDatabase by inject()
private lateinit var myDO :MyDO
init {
launch(Dispatchers.IO) {
myDO = database.myDAO().selectMyDO()
}
}
...
Мой метод выбора базы данных похож на: -
@Query("SELECT * from my_table WHERE id = :id")
suspend fun selectMyDO(id: Long = MY_ID): MyDO
Чтобы получить этот код для компиляции, мне пришлось использовать private lateinit var myDO :MyDO
Можно ли как-нибудь заменить это на private val myDO :MyDO
и оставить в качестве метода доступа к базе данных suspend
?