首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >@在SubComponent中使用AndroidInjector和Kotlin提供方法

@在SubComponent中使用AndroidInjector和Kotlin提供方法
EN

Stack Overflow用户
提问于 2017-11-21 11:37:09
回答 1查看 796关注 0票数 1

我用的是Dagger2 AndroidInjector和Kotlin。我有一个子组件,它的模块是这样定义的:

代码语言:javascript
复制
@Subcomponent(modules = arrayOf(
        UIModule::class,
        HomeActivitySubcomponent.ComponentModule::class
))
interface HomeActivitySubcomponent : AndroidInjector<HomeActivity> {
    @Subcomponent.Builder
    abstract class Builder : AndroidInjector.Builder<HomeActivity>()

    @Module
    abstract class ComponentModule {
        @Binds
        @IntoMap
        @ActivityKey(HomeActivity::class)
        internal abstract fun bindMainActivityInjectorFactory(builder: Builder): AndroidInjector.Factory<out Activity>
    }
}

如果这是java,我可以向ComponentModule @模块添加一个静态@Provides方法。它必须是静态的,因为Dagger抱怨如果我向使用@Binds的@Module类添加了一个非静态方法:

错误:@模块不能同时包含非静态的方法和抽象的@Binds或@Multibinds声明。

问题是:我怎么才能和Kotlin做这件事?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-11-23 17:14:11

我的结尾是:

代码语言:javascript
复制
@Subcomponent(modules = arrayOf(
        UIModule::class,
        HomeActivitySubcomponent.ComponentModuleForProviders::class,
        HomeActivitySubcomponent.ComponentModule::class
))
interface HomeActivitySubcomponent : AndroidInjector<HomeActivity> {
    @Subcomponent.Builder
    abstract class Builder : AndroidInjector.Builder<HomeActivity>()

    @Module
    abstract class ComponentModule {
        @Suppress("unused")
        @Binds
        @IntoMap
        @ActivityKey(HomeActivity::class)
        internal abstract fun bindMainActivityInjectorFactory(builder: Builder): AndroidInjector.Factory<out Activity>
    }

    @Module
    open class ComponentModuleForProviders {
        @Provides
        open fun provideDrawerPresenter(): DrawerPresenter {...}
     }

}

因此,我为@Provides方法使用了第二个@Module类:ComponentModuleForProviders

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47412194

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档