Функция valueOf

Функция valueOf является встроенной функцией для всех перечислений (enum) в Kotlin. Она позволяет получить элемент enum по его строковому имени. Если элемента с указанным именем не существует, функция выбрасывает исключение IllegalArgumentException.

Синтаксис

kotlinenumClass.valueOf(value: String): enumClass

Пример

Создадим enum и получим его элемент по имени:

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

val dir: Direction = Direction.valueOf("SOUTH")
println(dir)

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

kotlinSOUTH

Пример

Попытка получить несуществующий элемент enum:

kotlinenum class Color {
  RED, GREEN, BLUE
}

try {
  val col: Color = Color.valueOf("YELLOW")
} catch (e: IllegalArgumentException) {
  println("Color not found")
}

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

kotlinColor not found

Пример

Использование valueOf в условном выражении:

kotlinenum class Status {
  ACTIVE, INACTIVE, PENDING
}

val input = "ACTIVE"
val status: Status? = try {
  Status.valueOf(input)
} catch (e: IllegalArgumentException) {
  null
}

println(status)

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

kotlinACTIVE

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

  • метод values,
    который возвращает массив всех элементов enum
  • метод name,
    который возвращает имя элемента enum
  • метод ordinal,
    который возвращает порядковый номер элемента enum
  • функцию valueOfOrNull,
    которая безопасно возвращает элемент enum