对比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常量的主要内容,如果未能解决你的问题,请参考以下文章

对比Java学Kotlin抽象类

对比Java学Kotlin抽象类

对比Java学Kotlin官方文档目录

对比Java学Kotlin单例模式

对比Java学Kotlin密封类

对比Java学Kotlin密封类