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