Функция enumValuesOf

Функция enumValuesOf позволяет получить значение перечисления по его имени, переданному в виде строки. Если элемента с таким именем не существует, функция выбрасывает исключение IllegalArgumentException.

Синтаксис

kotlininline fun <reified T : Enum<T>> enumValueOf(name: String): T

Пример

Создадим перечисление и получим одно из его значений по имени:

kotlinenum class Direction { NORTH, SOUTH, EAST, WEST }

val direction: Direction = enumValueOf<Direction>("NORTH")
println(direction)

Результат выполнения кода:

kotlinDirection NORTH

Пример

Попробуем получить несуществующее значение перечисления:

kotlinenum class Color { RED, GREEN, BLUE }

try {
  val color: Color = enumValueOf<Color>("YELLOW")
} catch (e: IllegalArgumentException) {
  println("Color not found")
}

Результат выполнения кода:

kotlinColor not found

Пример

Использование с пользовательскими перечислениями:

kotlinenum class Status { ACTIVE, INACTIVE, PENDING }

val status: Status = enumValueOf<Status>("ACTIVE")
println(status.ordinal)

Результат выполнения кода:

kotlinInt 0

Смотрите также

  • функцию enumValues,
    которая возвращает все значения перечисления
  • свойство name,
    которое возвращает имя значения перечисления
  • свойство ordinal,
    которое возвращает порядковый номер значения перечисления
  • функцию valueOf,
    которая является альтернативным способом получения значения enum по строке