如何使用Dagger 2注入Kotlin委托财产?

时间:2017-02-24 00:30:35

标签: kotlin dagger-2

我需要将(@Named)注入dagger2注入kotlin委托属性。

//works great!
@set:Inject var cat: Cat by Ref(ref)

//fails
@set:[Inject Named("dog")] var dog : Animal by Ref(ref)

所以我试过

//fails, can't use `@field` with a delegated property
@field:[Inject Named("dog")] var dog : Animal by Ref(ref)

//fails, can't use `lateinit` with a delegated property
@field:[Inject Named("dog")] lateinit var dog : Animal by Ref(ref)

1 个答案:

答案 0 :(得分:0)

你不能,因为这样的属性没有任何字段,而是代理获取和设置对委托属性对象的调用。匕首对这个委托一无所知,这只是两个方法和一个对象。

我不确定你的情况,但可能你可以注入你的委托类实例Ref所需的值,但我不知道你想做什么,你的代表如何工作,你怎么做使用Dagger(你使用什么类型的注射剂)