Я занимаюсь разработкой приложения с использованием MVVM и dagger2. Я получил комментарий о том, что мой «Хранилище комнат» object.getInstance (app) "является опасным объектом и может привести к тому, что мое приложение войдет в бесконечную рекурсивную l oop. Как я могу это исправить?
Мой RoomRepository :
class RoomRepository @Inject constructor(app: App, private val apiRepository: ApiRepository) {
var contactDao: ContactDao
private var allContacts: LiveData<List<ContactsRoom>>
companion object {
@Volatile
private var INSTANCE: RoomRepository? = null
fun getInstance(app: App): RoomRepository {
return INSTANCE ?: getInstance(app)
}
}
init {
val database: ContactDatabase? = ContactDatabase.getInstance(app.applicationContext)
contactDao = database!!.contactDao()
allContacts = contactDao.getAllContact()
}
fun insert(contactsRoom: ContactsRoom) {
AsyncTask.execute{
contactDao.insert(contactsRoom) }
}
}
Мой модуль приложения
class App : DaggerApplication() {
override fun applicationInjector(): AndroidInjector<out DaggerApplication>? {
return DaggerApplicationComponent.factory().create(this)
}
}