lessons from for dummies codecademy array java kotlin

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 }