我想让我的Dagger 2注入下面的类,并且不打算使用@Module
来实现。
所以我将@Inejct constructor
放在下面
class InjectClass @Inject constructor(var txt: String = "Default")
它不能正常工作
e: [kapt] An exception occurred: java.lang.IllegalStateException: Found multiple
@Inject constructors: [InjectClass(java.lang.String), InjectClass()]
有没有办法让它在这里工作?
答案 0 :(得分:3)
代替使用默认值,您可以编写辅助构造器:
class InjectClass @Inject constructor(var txt: String) {
constructor(): this("Default")
}
就像这样,您要确保默认构造函数未使用@Inject
进行注释,并且 Dagger 知道如何创建InjectClass
。
可选地,我们可以这样做
class InjectClass(var txt: String) {
@Inject constructor(): this("Default")
}