Функция fromOrNull

Функция fromOrNull используется для безопасного преобразования строки в соответствующий элемент перечисления (Enum). Если строка не соответствует ни одному из значений перечисления, функция возвращает null вместо выброса исключения. Это делает код более безопасным и избегает необходимости обработки исключений.

Синтаксис

kotlinenumClass.fromOrNull(value: String): EnumType?

Пример

Создадим перечисление дней недели и преобразуем строку в элемент Enum:

kotlinenum class Day {
  MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY
}

val dayString = "MONDAY"
val day: Day? = Day.fromOrNull(dayString)
println(day)

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

kotlinMONDAY

Пример

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

kotlinval invalidString = "INVALID_DAY"
val day: Day? = Day.fromOrNull(invalidString)
println(day)

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

kotlinnull

Пример

Использование fromOrNull с обработкой результата через Elvis оператор:

kotlinval input = "FRIDAY"
val day: Day = Day.fromOrNull(input) ?: Day.MONDAY
println(day)

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

kotlinFRIDAY

Пример

Использование fromOrNull в условии if:

kotlinval userInput = "SATURDAY"

if (Day.fromOrNull(userInput) != null) {
  println("Valid day entered")
} else {
  println("Invalid day entered")
}

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

kotlinValid day entered

Пример

Работа с перечислением, содержащим пользовательские значения:

kotlinenum class Status(val code: Int) {
  ACTIVE(1), INACTIVE(0), PENDING(2)
}

val status = Status.fromOrNull("ACTIVE")
println("Status: $status, Code: ${status?.code}")

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

kotlinStatus: ACTIVE, Code: 1

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

  • функцию valueOf,
    которая преобразует строку в элемент Enum с выбросом исключения
  • функцию values,
    которая возвращает массив всех элементов перечисления
  • функцию entries,
    которая возвращает список всех элементов перечисления
  • функцию name,
    которая возвращает имя элемента Enum в виде строки