在Java中,要声明常量,可以执行以下操作:
class Hello {
public static final int MAX_LEN = 20;
}
Kotlin的等价物是什么?
答案 0 :(得分:164)
根据Kotlin documentation,这相当于:
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
}
}
答案 1 :(得分:25)
如果您在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
}
答案 2 :(得分:7)
对我来说
object Hello {
const val MAX_LEN = 20
}
是很多样板。我简单地将静态最终字段放在我的类上面,就像这样
val MIN_LENGTH = 10
class MyService{
}