通过刀柄中的不同具体类绑定接口?

我使用刀柄。我有一个接口,但我有两个实现它们的类。我需要在 ViewModels 中实现不同的 @Bind 接口。请帮帮我?创建自定义组件?或使用自定义范围?

回答

您提供的给定代码会有所帮助,但让我们假设:

你的界面

interface YourInterface {}

班级

class MyFirstClassImpl @Inject constructor() : YourInterface

class MySecondClassImpl @Inject constructor() : YourInterface

迪模块

@Module
@InstallIn(SingletonComponent::class)
inteface YourClassModule {
    @Binds
    @MyFirstClass
    fun provideMyFirstClass(class: MyFirstClassImpl): YourInterface

    @Binds
    @MySecondClass
    fun provideMySecondClass(class: MySecondClassImpl): YourInterface

}

@Qualifier
@Retention(AnnotationRetention.RUNTIME)
annotation class MyFirstClass

@Qualifier
@Retention(AnnotationRetention.RUNTIME)
annotation class MySecondClass

视图模型

class YourViewModel @ViewModelInject constructor(
    @MyFirstClass private val firstClass: YourInterface,
    @MySecondClass private val secondClass: YourInterface
) : ViewModel()

这应该可以完成工作。


以上是通过刀柄中的不同具体类绑定接口?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>