آموزش 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 }
۰۲/۰۹/۰۲