Middle
Come eseguire l'iniezione delle dipendenze in un campo con Dagger Hilt?
sobes.tech AI
Risposta dell'AI
L'iniezione delle dipendenze in un campo usando Dagger Hilt avviene tramite l'uso dell'annotazione @Inject prima della dichiarazione del campo in una classe annotata con @AndroidEntryPoint.
import dagger.hilt.android.AndroidEntryPoint
import javax.inject.Inject
@AndroidEntryPoint // Questa classe sarà iniettata nell'applicazione
class MyActivity : AppCompatActivity() {
@Inject // Iniettiamo la dipendenza
lateinit var myDependency: MyDependency
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
myDependency.doSomething()
}
}
L'annotazione @Inject indica a Hilt che questo campo necessita di una dipendenza. Hilt troverà un provider corrispondente (ad esempio, un modulo Dagger) per il tipo MyDependency e fornirà un'istanza di questo tipo in questo campo durante la creazione di un'istanza di MyActivity.
È importante ricordare che la classe MyActivity deve essere annotata con @AndroidEntryPoint affinché Hilt possa iniettare le dipendenze nei suoi campi. Inoltre, il campo da iniettare non può essere privato (private).