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.