在写 Java 代码的时候,定义常量一般在 class 里写 public static final ,或者在 interface 里直接定义。而在 kotlin 中,没有 static 关键词,在 kotlin 的接口中定义的属性还不能被赋值,于是定义常量顿时变得非常困惑。
解决方案之一 , companion object 伴生对象是解决我们在类中定义常量的一个方案。确实不错,代码如下
class Constants {
companion object {
val FOO = "foo"
}
}
在 kotlin 中 Constants.FOO 就可以访问到定义的常量。但是在 Java 中调用就比较难看,Constants.Companion.FOO ,总感觉很别扭。解决方案是在 val FOO 前加上 @JvmField 注解。
方案二,kotlin 的另外一个特性,属性可以不定义在一个 class 或者 object 里。创建一个 Constants 的 kotlin 代码文件,直接定义属性
@file:JvmName("Constants")
package com.example
const val FOO = "foo"
@file:JvmName("Constants") 需要加在代码的第一个行,这样就搞定了。
阅读原文 : Where Should I Keep My Constants in Kotlin? https://blog.egorand.me/where-do-i-put-my-constants-in-kotlin/
- EOF -
本站文章除注明转载外,均为本站原创或编译。欢迎任何形式的转载,但请务必注明出处,尊重他人劳动。
转载请注明:文章转载自 Binkery 技术博客 [https://binkery.com]
本文标题: Where Should I Keep My Constants in Kotlin?
本文地址: https://binkery.com/archives/2019.09.02-Kotlin中如何定义常量.html