我最近在这篇文章中发布了这样一个问题的答案:
Dagger2:使用@Named获取同一对象的多个实例时出错
您需要
@Named("someName")像这样在模块中使用:@Modulepublic class ApplicationModule {private Shape rec;private Shape circle;public ApplicationModule() { rec = new Rectangle(); circle= new Circle ();}@Provides @Named("rect")public Shape provideRectangle() { return rec ;}@Provides @Named("circle")public Shape provideCircle() { return circle;}}
然后,只要您需要注入它们,只需编写
@Inject@Named("rect") Shape objRect;它很有趣,但是您必须以不同的方式在Kotlin中注入:
@field:[Inject Named("rect")]lateinit var objRect: Shape


