Подтвердить что ты не робот

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

У Kotlin уже есть число "статических" методов для класса enum, например values и valueOf

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

public enum class CircleType {
    FIRST
    SECOND
    THIRD
}

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

4b9b3361

Ответ 1

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

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

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

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