我需要将(@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)
答案 0 :(得分:0)
你不能,因为这样的属性没有任何字段,而是代理获取和设置对委托属性对象的调用。匕首对这个委托一无所知,这只是两个方法和一个对象。
我不确定你的情况,但可能你可以注入你的委托类实例Ref所需的值,但我不知道你想做什么,你的代表如何工作,你怎么做使用Dagger(你使用什么类型的注射剂)