Функция valueOf
Функция valueOf является встроенной функцией для всех перечислений (enum) в Kotlin. Она позволяет получить элемент enum по его строковому имени. Если элемента с указанным именем не существует, функция выбрасывает исключение IllegalArgumentException.
Синтаксис
enumClass.valueOf(value: String): enumClass
Пример
Создадим enum и получим его элемент по имени:
enum class Direction {
NORTH, SOUTH, EAST, WEST
}
val dir: Direction = Direction.valueOf("SOUTH")
println(dir)
Результат выполнения кода:
SOUTH
Пример
Попытка получить несуществующий элемент enum:
enum class Color {
RED, GREEN, BLUE
}
try {
val col: Color = Color.valueOf("YELLOW")
} catch (e: IllegalArgumentException) {
println("Color not found")
}
Результат выполнения кода:
Color not found
Пример
Использование valueOf в условном выражении:
enum class Status {
ACTIVE, INACTIVE, PENDING
}
val input = "ACTIVE"
val status: Status? = try {
Status.valueOf(input)
} catch (e: IllegalArgumentException) {
null
}
println(status)
Результат выполнения кода:
ACTIVE
Смотрите также
-
метод
values,
который возвращает массив всех элементов enum -
метод
name,
который возвращает имя элемента enum -
метод
ordinal,
который возвращает порядковый номер элемента enum -
функцию
valueOfOrNull,
которая безопасно возвращает элемент enum