from - ¿Cuál es el equivalente de los campos finales estáticos de Java en Kotlin?
kotlin lessons (3)
En Java, para declarar una constante, haces algo como:
class Hello {
public static final int MAX_LEN = 20;
}
¿Cuál es el equivalente en Kotlin?
Para mi
object Hello {
const val MAX_LEN = 20
}
fue demasiado repetitivo. Simplemente pongo los campos finales estáticos por encima de mi clase de esta manera
val MIN_LENGTH = 10
class MyService{
}
Según la documentation Kotlin documentation esto es equivalente:
class Hello {
companion object {
const val MAX_LEN = 20
}
}
Uso:
fun main(srgs: Array<String>) {
println(Hello.MAX_LEN)
}
También esta es la propiedad final estática (campo con getter):
class Hello {
companion object {
@JvmStatic val MAX_LEN = 20
}
}
Y finalmente este es el campo final estático:
class Hello {
companion object {
@JvmField val MAX_LEN = 20
}
}
si tiene una implementación en
Hello
, use un
companion object
dentro de una clase
class Hello {
companion object {
val MAX_LEN = 1 + 1
}
}
si
Hello
es un objeto singleton puro
object Hello {
val MAX_LEN = 1 + 1
}
si las propiedades son constantes de tiempo de compilación, agregue una palabra clave documentation
object Hello {
const val MAX_LEN = 20
}
si desea usarlo en Java, agregue la anotación
@JvmStatic
object Hello {
@JvmStatic val MAX_LEN = 20
}