Ham*_*med 36 evaluation enums kotlin
我有这样的枚举:
enum class States(value: Int) {
STATE_A(1),
STATE_B(2),
STATE_C(3),
STATE_D(4)
}
Run Code Online (Sandbox Code Playgroud)
我怎样才能获得枚举的价值?例如States.STATE_C应返回3.
hlu*_*kyi 68
您应该将valueproperty(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
Run Code Online (Sandbox Code Playgroud)
还可以考虑使用ordinal,这可能适用于您的情况:
enum class States {
STATE_A,
STATE_B,
STATE_C,
STATE_D
}
...
println(States.STATE_C.ordinal + 1) // prints 3
Run Code Online (Sandbox Code Playgroud)
如果您采用这种方法,请小心 - 任何States订单更改都可能会破坏您的代码.
| 归档时间: |
|
| 查看次数: |
19579 次 |
| 最近记录: |