Sobes.tech
Middle

Jak provést injekci závislostí do pole pomocí Dagger Hilt?

sobes.tech AI

Odpověď od AI

Vkládání závislosti do pole pomocí Dagger Hilt se provádí použitím anotace @Inject před deklarací pole ve třídě označené @AndroidEntryPoint.

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

@AndroidEntryPoint // Tato třída bude injektována do aplikace
class MyActivity : AppCompatActivity() {

    @Inject // Injektujeme závislost
    lateinit var myDependency: MyDependency

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

Anotace @Inject říká Hilt, že toto pole potřebuje závislost. Hilt najde odpovídající poskytovatel (například Dagger modul) pro typ MyDependency a při vytváření instance MyActivity poskytne instanci tohoto typu do tohoto pole.

Je důležité pamatovat, že třída MyActivity musí být označena @AndroidEntryPoint, aby Hilt mohl vkládat závislosti do jejích polí. Také, vložené pole nemůže být soukromé (private).