Что такое эквивалент статических конечных полей 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 }