lan*_*nyf 2 android dependency-injection kotlin dagger-2
在android,kotlin项目中,看到了这个@set:Inject 但找不到很好的解释。有谁知道?
object Controller {
@set:Inject
lateinit var someData: SomeData
Run Code Online (Sandbox Code Playgroud)
该@Inject注释可用于方法,构造函数,或字段:
@Target(value={METHOD,CONSTRUCTOR,FIELD})
Run Code Online (Sandbox Code Playgroud)
重要的是要记住,将从此Kotlin代码生成Java代码,并且对于Kotlin中的一条语句,您可以具有多个Java元素,这就是为什么要@set:Inject明确指定将@Inject注释应用于将以Java生成的setter的原因。
如果未定义使用场所目标,该怎么办?官方文档提供了很好的解释:
如果未指定使用场所目标,则根据所使用注释的@Target注释选择目标。如果有多个适用目标,则使用以下列表中的第一个适用目标:
- 参数(构造函数参数);
- 属性(此目标的注释对Java不可见);
- 领域;
| 归档时间: |
|
| 查看次数: |
672 次 |
| 最近记录: |