آموزش hilt - قسمت دوم
پنجشنبه, ۲ آذر ۱۴۰۲، ۰۴:۲۱ ب.ظ
انوتیشن Binds@
از این انوتیشن فقط برای تزریق اینترفیس استفاده میشه. در کل استفاده از چندان توصیه نمیشه.
اگر اینترفیس زیر رو داشته باشیم:
interface SomeInterface{
fun getAllThings() : String
}
و کلاس زیر اون رو پیاده سازی کرده باشه:
class SomeInterfaceImpl @Inject constructor() : SomeInterface{
override fun getAllThings(): String {
return "A Thing"
}
}
در این صورت کلاس ماژول حتما باید از نوع abstract باشه و خود متد تزریق هم باید از نوع abstract باشه:
@Module
@InstallIn(ActivityComponent::class)
abstract class MyModule{
@Binds
@ActivityScoped
abstract fun bindSomeDependency(
someImpl : SomeInterfaceImpl
) : SomeInterface
}
۰۲/۰۹/۰۲