Назад к вопросам
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).