Kotlin中使用Dagger的坑:使用@Named限定符报错
最近开发APP使用到了Kotlin,Daager2,以为一切都和Java一样的使用,然后就经历过了kapt,@JvmField等问题
之后又发生了@Named限定符问题
事情的经过是这样的,使用到了retrofit,想提供两个retrofit实例在不同的地方使用(其他文章会讲到使用场景)
然后就使用到了@Named限定符具体代码如下
声明两个实例提供者
然后就是使用,java使用没什么问题
然后就遇到了接下来要讲的问题,kotlin使用的时候,先是正常使用
看着没啥问题,编译,哦豁,报错
经过好久的百度,找到以下这篇文章(https://www.jianshu.com/p/1b98d0a0e42d)
大意是,kotlin使用限定符的时候有些问题,然后daager2官方也在某一个版本中发现并修复了这个问题,具体使用方法如下
编译,完美通过
问题总结
按照Java的使用方式使用限定符,Java类没有问题,但是用Kotlin使用报错如下
就可以使用 @filed:限定符 来解决