我在Android上使用Dagger2,我遇到了如何使用命名变体构建Singleton的问题。
让我的例子说我想从B和A构建对象C.这里没有描述A但是B有两个版本(niceB和notNiceB)。我想用notNiceB构建C,我如何指定要注入的bean。 @Named(" notNiceB")参数中的B b似乎不起作用。
@Module
public class MyModule {
@Provides
@Singleton
C providesC(B b, A a) {
// Omitted here
}
@Provides
@Singleton
@Named("niceB")
B providesNiceB() {
// Omitted here
}
@Provides
@Singleton
@Named("notNiceB")
B providesNotNiceB() {
// Omitted here
}
}
答案 0 :(得分:1)
@Provides
@Singleton
C c(@Named("notNiceB") B b, A a) {
// Omitted here
}
这应该有用。