对比Java学Kotlin常量
Posted 陈蒙_
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了对比Java学Kotlin常量相关的知识,希望对你有一定的参考价值。
文章目录
在开发过程中我们会经常使用常量。如果是熟悉 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
方法二:object + const
object Constants
const val FOO = "foo"
在其他的 Kotlin 文件中引用上述常量:
Constants.FOO
方法三:const val
在文件顶部写常量或方法,即为常量和静态方法,比如在 Constants.kt 里面:
const val FOO = "foo"
fun fun1()
class Foo
在其他的 Kotlin 文件中引用上述常量:
Constants.FOO
Constants.fun1()
以上是关于对比Java学Kotlin常量的主要内容,如果未能解决你的问题,请参考以下文章