Sobes.tech
Middle

Ako vykonať injekciu závislosti do poľa pomocou Dagger Hilt?

sobes.tech AI

Odpoveď od AI

Vkladanie závislosti do poľa pomocou Dagger Hilt sa vykonáva použitím anotácie @Inject pred deklaráciou poľa v triede označenej @AndroidEntryPoint.

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

@AndroidEntryPoint // Táto trieda bude injektovaná do aplikácie
class MyActivity : AppCompatActivity() {

    @Inject // Injektujeme závislosť
    lateinit var myDependency: MyDependency

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

Anotácia @Inject naznačuje Hilt-u, že toto pole potrebuje závislosť. Hilt nájde zodpovedajúceho poskytovateľa (napríklad Dagger modul) pre typ MyDependency a poskytne inštanciu tohto typu do tohto poľa pri vytváraní inštancie MyActivity.

Je dôležité pamätať na to, že trieda MyActivity musí byť označená @AndroidEntryPoint, aby Hilt mohol vkladať závislosti do jej polí. Okrem toho, pole na injektovanie nemôže byť súkromné (private).