在Dagger 2中,我可以使用@Qualifier来实例化具有不同参数的两个相同类型的对象,例如。
@Module
open class Bag {
@Provides @Named(LOVE)
open fun sayLoveDagger2(): Info {
return Info("I Love You")
}
@Provides @Named(HELLO)
open fun sayHelloDagger2(): Info {
return Info("Hello Dagger 2")
}
}
class Info(val text: String)
我可以将它们绑定为
@Inject
@field:Named(LOVE)
lateinit var infoLove: Info
@Inject
@field:Named(HELLO)
lateinit var infoHello: Info
但是,如果我想使用在Object声明侧定义的参数注入Info
对象,如下所示,如下......(显然下面是不可能的),我该怎么办?
@Inject
@field:Named("My String that I want to send into Info as argument")
lateinit var infoWithAboveAsArgument: Info
答案 0 :(得分:1)
我认为您正在寻找的是AutoFactory。基本上它允许您注入一些参数并定义其他参数https://github.com/google/auto/tree/master/factory