Kotlin + Dagger2 @模块提供者方法用法中的注释

我在Kotlin中使用Dagger 2 @Named注解时出现了一个问题,那就是阻止我将Dagger图形移植到Kotlin。 当我需要在Dagger模块方法中注入一个@Named参数时,会出现问题。 在这种情况下,我不是通过构造函数或字段注入它。 我已经尝试了所有Kotlin注释使用网站的目标,并没有一个似乎在方法参数中工作。 请,任何解决方案将非常感激。 下面是转换成Kotlin的java代码部分不会编译:

@Module public final class MyModule { (...) @Provides @Singleton LoginStore provideLoginStore(@Named("main_dao_session") DaoSession mainDaoSession, @Named("demo_dao_session") DaoSession demoDaoSession) { return new LoginStoreImpl(mainDaoSession, demoDaoSession); } (...) } 

在这种情况下,使用站点目标不适用,因为您正在处理函数参数。 目标需要用构造函数指定,因为每个构造函数参数在后台生成了很多代码。

只需要像通常那样使用注释:

 @Provides @Singleton fun provideLoginStore(@Named("main_dao_session") mainDaoSession: DaoSession, @Named("demo_dao_session") demoDaoSession: DaoSession): LoginStore { return LoginStoreImpl(mainDaoSession, demoDaoSession) }