私はこのような列挙型を持っています:
enum class States(value: Int) {
STATE_A(1),
STATE_B(2),
STATE_C(3),
STATE_D(4)
}
列挙型の値を取得するにはどうすればよいですか?たとえば、States.STATE_Cはを返す必要があります。
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
の順序を変更すると、コードが破損する可能性があります。