86 votes

Comment puis-je obtenir la valeur Int de l'énumération Kotlin?

J'ai une énumération comme celle-ci:

 enum class States(value: Int) {
    STATE_A(1),
    STATE_B(2),
    STATE_C(3),
    STATE_D(4)
}
 

Comment puis-je obtenir la valeur d'énumération? Par exemple, States.STATE_C doit renvoyer 3 .

150voto

hluhovskyi Points 2231

Vous devez définir value comme propriété ( val ) et non comme 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 dans 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 States peut casser votre code.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X