Sobes.tech
Middle

Kaip atlikti priklausomybių injekciją į lauką naudojant Dagger Hilt?

sobes.tech AI

Atsakymas iš AI

Priklausomybės įvedimas į lauką naudojant Dagger Hilt atliekamas naudojant anotaciją @Inject prieš deklaruojant lauką klasėje, pažymėtoje @AndroidEntryPoint.

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

@AndroidEntryPoint // Šis klasė bus įdiegta į programą
class MyActivity : AppCompatActivity() {

    @Inject // Injektuojame priklausomybę
    lateinit var myDependency: MyDependency

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

@Inject anotacija nurodo Hilt, kad šis laukas reikalauja priklausomybės. Hilt suras atitinkamą tiekėją (pavyzdžiui, Dagger modulį) MyDependency tipui ir suteiks šio tipo egzempliorių šiam laukui kuriant MyActivity egzempliorių.

Svarbu prisiminti, kad klasė MyActivity turi būti pažymėta @AndroidEntryPoint, kad Hilt galėtų įdiegti priklausomybes į jos laukus. Taip pat, įvedamas laukas negali būti privačios (private).