Sobes.tech
Middle

Как да извършите внедряване на зависимост в поле с помощта на Dagger Hilt?

sobes.tech AI

Отговор от AI

Внедряването на зависимост в поле с помощта на Dagger Hilt се извършва чрез използване на анотацията @Inject преди декларацията на полето в клас, който е анотиран с @AndroidEntryPoint.

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

@AndroidEntryPoint // Този клас ще бъде внедрен в приложението
class MyActivity : AppCompatActivity() {

    @Inject // Внедряваме зависимост
    lateinit var myDependency: MyDependency

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

Анотацията @Inject указва на Hilt, че това поле се нуждае от зависимост. Hilt ще намери съответния доставчик (например Dagger модул) за типа MyDependency и ще предостави екземпляр от този тип в това поле при създаването на екземпляр на MyActivity.

Важно е да се помни, че класът MyActivity трябва да бъде означен с @AndroidEntryPoint, за да може Hilt да внедрява зависимости в неговите полета. Освен това, внедряваното поле не може да бъде частно (private).