Kotlin编程:属性、构造器、继承与接口的深入解析
1. 注解属性
Kotlin 从单个属性会生成多个 JVM 字节码元素,如私有字段、getter 和 setter。有时,框架注解处理器或基于反射的库需要将特定元素定义为公共字段。例如 JUnit 测试框架,它要求通过测试类字段或 getter 方法提供规则。
@Rule
val activityRule = ActivityTestRule(MainActivity::class.Java)
上述代码注解了 Kotlin 属性,但 JUnit 无法识别,导致 ActivityTestRule 无法正确初始化。JUnit 注解处理器期望 Rule 注解在字段或 getter 上。解决此问题有以下几种方法:
- 使用
@JvmField注解 :将 Kotlin 属性暴露为 Java 字段。
@JvmField @Rule
val activityRule = ActivityTestRule(MainActivity::class.Java)
使用 @JvmField 注解有一些限制,属性必须有后备字段,不能是私有的,不能有 open 、 override 或
超级会员免费看
订阅专栏 解锁全文
21

被折叠的 条评论
为什么被折叠?



