Middle
Hogyan hajtsuk végre a függőség injektálását egy mezőbe Dagger Hilt segítségével?
sobes.tech MI
Válasz az MI-től
A Dagger Hilt segítségével történő függőségbevitelt egy olyan osztályban végzik, amelyet @AndroidEntryPoint-tel jelöltek, és a mező deklarációja előtt az @Inject annotációt használják.
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint // Ez az osztály injektálva lesz az alkalmazásba
class MyActivity : AppCompatActivity() {
@Inject // Függőség injektálása
lateinit var myDependency: MyDependency
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
myDependency.doSomething()
}
}
Az @Inject annotáció azt jelzi a Hilt számára, hogy ez a mező függőséget igényel. A Hilt megtalálja a megfelelő szolgáltatót (például egy Dagger modult) a MyDependency típushoz, és az adott típus példányát biztosítja ebbe a mezőbe, amikor a MyActivity példányát létrehozza.
Fontos megjegyezni, hogy a MyActivity osztálynak @AndroidEntryPoint-tel kell lennie, hogy a Hilt injektálhassa a függőségeket a mezőibe. Emellett, a beinjectálandó mező nem lehet privát (private).