Sobes.tech
Middle

Cum se realizează injecția de dependințe într-un câmp folosind Dagger Hilt?

sobes.tech AI

Răspuns de la AI

Injectarea dependenței într-un câmp folosind Dagger Hilt se face prin utilizarea adnotării @Inject înainte de declarația câmpului într-o clasă anotată cu @AndroidEntryPoint.

import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject

@AndroidEntryPoint // Această clasă va fi injectată în aplicație
class MyActivity : AppCompatActivity() {

    @Inject // Injectăm dependența
    lateinit var myDependency: MyDependency

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
        myDependency.doSomething()
    }
}

Adnotarea @Inject indică lui Hilt că acest câmp necesită o dependență. Hilt va găsi un furnizor corespunzător (de exemplu, un modul Dagger) pentru tipul MyDependency și va furniza o instanță a acestui tip în acest câmp la crearea unei instanțe de MyActivity.

Este important să rețineți că clasa MyActivity trebuie să fie marcată cu @AndroidEntryPoint pentru ca Hilt să poată injecta dependențe în câmpurile sale. În plus, câmpul de injectat nu poate fi privat (private).