Назад к вопросам
Junior — Middle
75
Чем ограничены возможности использования sealed class в языке программирования?
Компании, где спрашивали
ПСБ
Ответ от нейросети
sobes.tech AI
Sealed class в Kotlin ограничены тем, что все их подклассы должны быть объявлены в том же файле, что и сам sealed класс. Это позволяет компилятору знать все возможные варианты наследников и использовать это для проверки полноты при выражениях when.
Также sealed class не могут быть открыты для наследования вне файла, что ограничивает расширяемость, но повышает безопасность и предсказуемость кода.
Пример:
sealed class Result {
data class Success(val data: String) : Result()
object Error : Result()
}
fun handleResult(result: Result) {
when(result) {
is Result.Success -> println("Данные: ${result.data}")
is Result.Error -> println("Ошибка")
}
}
Таким образом, sealed class удобны для моделирования ограниченных наборов состояний, но не подходят, если нужно расширять иерархию в разных модулях.