Что такое эквивалент статических конечных полей Java в Котлине?
в Java, чтобы объявить константу, вы делаете что-то вроде:
class Hello {
public static final int MAX_LEN = 20;
}
что такое эквивалент в Котлин?
3 ответа:
По Словам Котлина документация это эквивалентно:
class Hello { companion object { const val MAX_LEN = 20 } }использование:
fun main(srgs: Array<String>) { println(Hello.MAX_LEN) }также это статическое конечное свойство (поле с геттером):
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 }