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