Назад к вопросам
Junior — Middle
65
Какие преимущества и сценарии использования sealed class ты знаешь в Kotlin?
Ответ от нейросети
sobes.tech AI
Sealed class в Kotlin используется для ограничения иерархии наследования. Все подклассы sealed класса должны быть объявлены в том же файле, что и сам sealed класс. Это позволяет компилятору знать все возможные варианты наследников, что удобно для использования в выражениях when без необходимости писать ветку else.
Преимущества:
- Безопасность типов: компилятор проверяет полноту обработки всех вариантов.
- Удобство для моделирования ограниченных наборов состояний или событий.
Сценарии использования:
- Реализация состояний в паттерне "состояние".
- Обработка событий или команд.
- Представление ограниченного множества вариантов, например, ответов API.
Пример:
sealed class Result {
data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()
object Loading : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Данные: ${result.data}")
is Result.Error -> println("Ошибка: ${result.error.message}")
Result.Loading -> println("Загрузка...")
}
}