Что такое Sealed Interface

«Что такое Sealed Interface» — вопрос из категории Kotlin, который задают на 27% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Sealed Interface (или Sealed Class) — это интерфейс (или класс), который ограничивает возможные реализации (или наследников) строго заданным набором. Это позволяет создавать иерархии с фиксированными типами, что полезно для моделирования состояний или вариантов данных.

sealed interface Result {
    data class Success(val data: String) : Result
    data class Error(val message: String) : Result
}

fun handleResult(result: Result) = when (result) {
    is Result.Success -> println(result.data)
    is Result.Error -> println(result.message)
}

Преимущества:

  • Исключает неучтённые кейсы в when (если не указать else, компилятор предупредит).
  • Чётко определяет возможные варианты, улучшая читаемость.