En Java, pour déclarer une constante, vous faites quelque chose comme:
class Hello {
public static final int MAX_LEN = 20;
}
Quel est l'équivalent à Kotlin?
Selon Kotlin documentation c'est équivalent:
class Hello {
companion object {
const val MAX_LEN = 20
}
}
Usage:
fun main(srgs: Array<String>) {
println(Hello.MAX_LEN)
}
Aussi c'est une propriété finale statique (champ avec getter):
class Hello {
companion object {
@JvmStatic val MAX_LEN = 20
}
}
Et enfin c'est le champ final statique:
class Hello {
companion object {
@JvmField val MAX_LEN = 20
}
}
si vous avez une implémentation dans Hello
, utilisez _companion object
_ dans une classe
_class Hello {
companion object {
val MAX_LEN = 1 + 1
}
}
_
si Hello
est un objet singleton pur
_object Hello {
val MAX_LEN = 1 + 1
}
_
si les propriétés sont des constantes à la compilation, ajoutez un mot clé const
_object Hello {
const val MAX_LEN = 20
}
_
si vous voulez l'utiliser en Java, ajoutez @JvmStatic
annotation
_object Hello {
@JvmStatic val MAX_LEN = 20
}
_
Pour moi
object Hello {
const val MAX_LEN = 20
}
était trop chaud. Je mets simplement les champs finaux statiques au dessus de ma classe comme ceci
val MIN_LENGTH = 10
class MyService{
}