J'ai un enum comme ça:
enum class States(value: Int) {
STATE_A(1),
STATE_B(2),
STATE_C(3),
STATE_D(4)
}
Comment puis-je obtenir la valeur de enum? Par exemple, States.STATE_C devrait renvoyer .
Vous devez définir value
en tant que propriété (val
) et non en tant que paramètre constructeur. Après cela, il devient accessible:
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
Pensez également à utiliser ordinal
, ce qui peut convenir à votre cas:
enum class States {
STATE_A,
STATE_B,
STATE_C,
STATE_D
}
...
println(States.STATE_C.ordinal + 1) // prints 3
Si vous optez pour cette approche, soyez prudent - tout changement de l'ordre de States
peut casser votre code.