什么是Kotlin中的Java静态最终字段的等价物?
在Java中,为了声明一个常量,你可以这样做:
class Hello { public static final int MAX_LEN = 20; }
Kotlin中的等价物是什么?
根据Kotlin 文档,这是等价的:
class Hello { companion object { const val MAX_LEN = 20 } }
用法:
fun main(srgs: Array<String>) { println(Hello.MAX_LEN) }
这也是静态的最终属性(与getter字段):
class Hello { companion object { @JvmStatic val MAX_LEN = 20 } }
最后这是静态的最后一场:
class Hello { companion object { @JvmField val MAX_LEN = 20 } }
如果您在Hello
有一个实现,请在类中使用companion object
class Hello { companion object { val MAX_LEN = 1 + 1 } }
如果Hello
是一个纯单例对象
object Hello { val MAX_LEN = 1 + 1 }
如果属性是编译时常量,则添加一个const
关键字
object Hello { const val MAX_LEN = 20 }
如果您想在Java中使用它,请添加@JvmStatic
批注
object Hello { @JvmStatic val MAX_LEN = 20 }