我有这样的枚举:
enum class States(value: Int) {
STATE_A(1),
STATE_B(2),
STATE_C(3),
STATE_D(4)
}
如何获得枚举值?例如 States.STATE_C 应返回 3 。
答案 0 :(得分:44)
您应该将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
订单的任何更改都可能会破坏您的代码。