Kotlin a déjà un certain nombre de méthodes "statiques" pour la classe enum, comme values
et valueOf
Par exemple, j'ai enum
public enum class CircleType {
FIRST
SECOND
THIRD
}
Comment puis-je ajouter une méthode statique telle que random(): CircleType
? Les fonctions d'extension ne semblent pas dans ce cas.
Comme avec n'importe quelle autre classe, vous pouvez définir un objet de classe dans une classe enum:
enum class CircleType {
FIRST,
SECOND,
THIRD;
companion object {
fun random(): CircleType = FIRST // http://dilbert.com/strip/2001-10-25
}
}
Vous pourrez alors appeler cette fonction en tant que CircleType.random()
.
EDIT: notez les virgules entre les entrées de constante enum et le point-virgule de fermeture avant l'objet compagnon. Les deux sont désormais obligatoires.