Dagger 2 - 模块提供单例

时间:2016-11-18 05:25:10

标签: android dagger-2

我在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
}
}

1 个答案:

答案 0 :(得分:1)

@Provides
@Singleton
C c(@Named("notNiceB") B b, A a) {
    // Omitted here
}

这应该有用。