Sobes.tech
Junior — Middle

Ist es erlaubt, den Modifier sealed für die Deklaration einer data class in Kotlin zu verwenden?

sobes.tech KI

Antwort von AI

В Kotlin нельзя объявлять data class с модификатором sealed.

Причина в том, что sealed классы предназначены для ограничения иерархии наследования — все подклассы должны быть объявлены в том же файле. Data class же предназначены для хранения данных с автоматически сгенерированными методами (equals, hashCode, toString и т.д.).

Комбинация sealed и data class не поддерживается, так как sealed класс не может быть data class, но его подклассы могут быть data class.

Пример:

sealed class Result

data class Success(val data: String) : Result()
data class Error(val error: Throwable) : Result()

Здесь sealed класс Result ограничивает наследование, а его подклассы — data class.