- только в те поля класса, которые вы хотите внедрить
Код: Выделить всё
@Inject lateinit var
Код: Выделить всё
@Inject constructor
Имея такой класс:
Код: Выделить всё
@AndroidEntryPoint
class CustomClass @Inject constructor (val repository: Repository, val name: String) {
Код: Выделить всё
val customClass = CustomClass("name")
Код: Выделить всё
@AndroidEntryPoint
class CustomClass @AssisgtedInject constructor (
val repository: Repository,
@Assisted val name: String
) {
@AssistedFactory
interface CustomClassFactory {
fun create(name: String): CustomClass
}
}
С другой стороны, если вы вместо этого сделаете это с помощью @Inject lateinit var, все будет так просто:
Код: Выделить всё
@AndroidEntryPoint
class CustomClass(val name: String) {
@Inject lateinit var repository: Repository
}
Итак, почему почти каждый пример проекта использует конструктор @Inject, если @Inject lateinit var — гораздо лучший вариант? Что я здесь теряю?
Подробнее здесь: https://stackoverflow.com/questions/791 ... agger-hilt