Предоставить методы в кинжале 2

У меня проблема, я не знаю, почему, но моя переменная не вводит и равна нулю. Я предоставляю такой метод:

@Provides @Singleton fun provideSource(context: Context): DatabaseSource = DatabaseSource(context, Models.DEFAULT, DB_NAME, DB_VERSION) @Provides @Singleton fun provideStoreDB(databaseSource: DatabaseSource): KotlinReactiveEntityStore<Store> = KotlinReactiveEntityStore(KotlinEntityDataStore(databaseSource.configuration)) @Provides @Singleton @NotNull fun provideStores() : Database<Store> = PersistentDatabase(Store::class) 

И класс для модели Store:

это наследник из класса «persistable».

 @Entity data class Store(val id: Long = 0, val name: String = "", val description: String = "", val date: String = "") : DisplayableItem, Persistable 

Класс для работы с БД

 @Singleton class PersistentDatabase <T: Any> (val type: KClass<T>) : Database <T> { @Inject internal lateinit var store: KotlinReactiveEntityStore<T> override fun addResult(item: T): Completable = store.insert(item).toCompletable() override fun addListResult(item: List<T>): Completable = store.insert(item).toCompletable() override fun deleteResult(item: T): Completable = store.delete(item) override fun getAllResults(): Single<List<T>> = (store select type).get().observable().toList() override fun removeAllResults(): Completable = store.delete(type).get().single().toCompletable() } 

В моем слое репозитория я использую его следующим образом:

 @Inject lateinit var database: Database<DetectedLanguageText> fun getHistory(): Single<List<DetectedLanguageText>> { return database.getAllResults() .map { it.sortedByDescending { it.date } } .transitSuccessToEmitter(historyEmitter) } 

Но когда я получаю функцию getAllResults, переменная

  @Inject internal lateinit var store: KotlinReactiveEntityStore<T> 

Не вводит и равно null . Почему это не работает для меня?

Я не вижу, где вы вводите KotlinReactiveEntityStore в PersistentDatabase. Вы просто создаете экземпляр в методе предоставления, но инъекция не выполняется.