在开发过程中我们会经常使用常量。如果是熟悉 Java 技术栈的同学,也许在 Kotlin 中会比葫芦画瓢的这样声明常量:
class Foo {
private val TAG = "foo"
}
因为 val 等价于 Java 里面的 final,Java 里面的常量至少得是 final 的呀。
其实这里的 TAG 不是“正经”的常量,而是一个只读变量。
在 Kotlin 眼里,用 companion object 或 const 的变量才是“根正苗红”的常量。
几种常见的常量写法如下,以在 Constants 类内常量 FOO 为例:
方法一:companion object
class Constants {
companion object {
val FOO = "foo"
}
}
在其他的 Kotlin 文件中引用上述常量:
Constants.FOO
注意,在 java 文件中的引用方法是不同的,需要加上 后缀 Kt,详见 从 Java 中引用 Kotlin 类名自动带上 Kt 后缀:
ConstantsKt.FOO