Sobes.tech
Middle

Hoe voer je dependency injection uit in een veld met Dagger Hilt?

sobes.tech AI

Antwoord van AI

De afhankelijkheid injectie in een veld met behulp van Dagger Hilt wordt uitgevoerd door de annotatie @Inject te gebruiken vóór de veldverklaring in een klasse die is geannoteerd met @AndroidEntryPoint.

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

@AndroidEntryPoint // Deze klasse wordt geïnjecteerd in de applicatie
class MyActivity : AppCompatActivity() {

    @Inject // Injecteer afhankelijkheid
    lateinit var myDependency: MyDependency

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

De annotatie @Inject geeft aan Hilt aan dat dit veld een afhankelijkheid nodig heeft. Hilt zal een bijpassende provider (bijvoorbeeld een Dagger-module) vinden voor het type MyDependency en een instantie van dat type in dit veld leveren bij het maken van een instantie van MyActivity.

Het is belangrijk om te onthouden dat de klasse MyActivity moet zijn gemarkeerd met @AndroidEntryPoint zodat Hilt afhankelijkheden in zijn velden kan injecteren. Bovendien mag het geïnjecteerde veld niet privé (private) zijn.