Как я могу создать «статический» метод для перечисления в Котильне?

У Kotlin уже есть число «статических» методов для класса enum, таких как values и valueOf

Например, у меня есть перечисление

 public enum class CircleType { FIRST SECOND THIRD } 

Как добавить статический метод, например random(): CircleType ? Функции расширения, похоже, не для этого случая.

    Как и любой другой класс, вы можете определить объект класса в классе enum:

     enum class CircleType { FIRST, SECOND, THIRD; companion object { fun random(): CircleType = FIRST // http://dilbert.com/strip/2001-10-25 } } 

    Затем вы сможете вызвать эту функцию как CircleType.random() .

    EDIT: обратите внимание на запятые между элементами константы enum и закрывающей точкой с запятой перед объектом-компаньоном. Оба они являются обязательными.