Назад к вопросам
Middle
88
questionbank
Как выполнить внедрение зависимости в поле с помощью Dagger Hilt?
Sobes Copilot
Получайте ответы в реальном времени
Ответ от нейросети
sobes.tech AI
Внедрение зависимости в поле с помощью Dagger Hilt выполняется путем использования аннотации @Inject перед объявлением поля в классе, который сам аннотирован @AndroidEntryPoint.
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint // Этот класс будет внедрен в приложение
class MyActivity : AppCompatActivity() {
@Inject // Инжектируем依存関係
lateinit var myDependency: MyDependency
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
myDependency.doSomething()
}
}
Аннотация @Inject указывает Hilt, что это поле нуждается во внедрении зависимости. Hilt найдет соответствующий провайдер (например, модуль Dagger) для типа MyDependency и предоставит экземпляр этого типа в это поле при создании экземпляра MyActivity.
Следует помнить, что класс MyActivity должен быть помечен @AndroidEntryPoint, чтобы Hilt мог внедрять зависимости в его поля. Также, внедряемое поле не может быть приватным (private).