Функция 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