Sobes.tech
Middle

Kako izvršiti injekciju zavisnosti u polje pomoću Dagger Hilt?

sobes.tech АИ

Одговор од АИ

Ubacivanje zavisnosti u polje pomoću Dagger Hilt-a vrši se korišćenjem anotacije @Inject pre deklaracije polja u klasi koja je označena sa @AndroidEntryPoint.

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

@AndroidEntryPoint // Ova klasa će biti injektovana u aplikaciju
class MyActivity : AppCompatActivity() {

    @Inject // Injektujemo zavisnost
    lateinit var myDependency: MyDependency

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

Anotacija @Inject ukazuje Hilt-u da ovo polje zahteva zavisnost. Hilt će pronaći odgovarajući pružaoca (na primer, Dagger modul) za tip MyDependency i obezbediti instancu tog tipa u ovo polje prilikom kreiranja instance MyActivity.

Važno je zapamtiti da klasa MyActivity mora biti označena sa @AndroidEntryPoint da bi Hilt mogao da injektuje zavisnosti u njena polja. Takođe, polje koje se injektuje ne može biti privatno (private).