我需要@Named使用dagger2 ()注入kotlin委托的属性。
//works great!
@set:Inject var cat: Cat by Ref(ref)
//fails
@set:[Inject Named("dog")] var dog : Animal by Ref(ref)
Run Code Online (Sandbox Code Playgroud)
所以我尝试了
//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)
Run Code Online (Sandbox Code Playgroud)
您不能,因为此类属性没有任何字段,而是委托 get 和 set 调用委托属性对象。dagger 对这个委托一无所知,这只是 2 个方法和一个对象。
我不确定你的情况,但可能你可以用所需的值注入你的委托类实例 Ref ,但我不知道你想做什么,你的委托如何工作以及如何使用 Dagger (什么类型的注入你用吗)
| 归档时间: |
|
| 查看次数: |
506 次 |
| 最近记录: |