我有一个这样的枚举:
enum class States(value: Int) {
STATE_A(1),
STATE_B(2),
STATE_C(3),
STATE_D(4)
}
我怎样才能得到枚举值?例如States.STATE_C应该返回3。
你应该定义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
为了能打破你的代码的任何变化。