Sobes.tech
Middle

Como realizar a injeção de dependências em um campo usando Dagger Hilt?

sobes.tech IA

Resposta da IA

A injeção de dependência em um campo usando Dagger Hilt é feita usando a anotação @Inject antes da declaração do campo em uma classe anotada com @AndroidEntryPoint.

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

@AndroidEntryPoint // Esta classe será injetada na aplicação
class MyActivity : AppCompatActivity() {

    @Inject // Injetando dependência
    lateinit var myDependency: MyDependency

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

A anotação @Inject indica ao Hilt que este campo necessita de uma dependência. O Hilt encontrará um provedor correspondente (por exemplo, um módulo Dagger) para o tipo MyDependency e fornecerá uma instância desse tipo neste campo ao criar uma instância de MyActivity.

É importante lembrar que a classe MyActivity deve estar anotada com @AndroidEntryPoint para que o Hilt possa injetar dependências em seus campos. Além disso, o campo a ser injetado não pode ser privado (private).