Как я могу получить значение Int из перечисления Kotlin? У меня есть перечисление вроде этого: enum class States(value: Int) { STATE_A(1), STATE_B(2), STATE_C(3), STATE_D(4) } Как я могу получить значение перечисления? Например, States.STATE_C должен вернуть 3. Ответ 1 Вы должны определить value как свойство (val), а не как параметр конструктора. После этого становится доступным: enum class States(val value: Int) { STATE_A(1), STATE_B(2), STATE_C(3), STATE_D(4) } ... println(States.STATE_C.value) // prints 3 Также рассмотрите возможность использования ordinal, который может подойти в вашем случае: enum class States { STATE_A, STATE_B, STATE_C, STATE_D } ... println(States.STATE_C.ordinal + 1) // prints 3 Если вы идете с этим подходом, будьте осторожны - любое изменение States порядка может привести к поломке вашего кода.
Ответ 1 Вы должны определить value как свойство (val), а не как параметр конструктора. После этого становится доступным: enum class States(val value: Int) { STATE_A(1), STATE_B(2), STATE_C(3), STATE_D(4) } ... println(States.STATE_C.value) // prints 3 Также рассмотрите возможность использования ordinal, который может подойти в вашем случае: enum class States { STATE_A, STATE_B, STATE_C, STATE_D } ... println(States.STATE_C.ordinal + 1) // prints 3 Если вы идете с этим подходом, будьте осторожны - любое изменение States порядка может привести к поломке вашего кода.