Sobes.tech
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).