【问题标题】:For Dagger 2, Is it possible to have variable constructor argument injection?对于 Dagger 2,是否可以进行变量构造函数参数注入?
【发布时间】:2018-02-15 07:01:29
【问题描述】:

在 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

但是,如果我想注入一个 Info 对象,并在对象声明端定义如下参数,例如如下......(显然下面是不可能的),我该怎么做?

 @Inject
 @field:Named("My String that I want to send into Info as argument")
 lateinit var infoWithAboveAsArgument: Info

【问题讨论】:

    标签: android kotlin dagger-2 qualifiers


    【解决方案1】:

    我认为您正在寻找的是 AutoFactory。基本上它允许您注入一些参数并定义其他参数https://github.com/google/auto/tree/master/factory

    【讨论】:

      猜你喜欢
      • 2015-11-11
      • 1970-01-01
      • 1970-01-01
      • 2015-10-01
      • 2017-12-24
      • 1970-01-01
      • 2018-07-12
      • 2019-02-23
      • 1970-01-01
      相关资源
      最近更新 更多