我最近在这篇文章中发布了这样一个问题的答案:
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
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)