Data-классы упрощают создание классов, предназначенных только для хранения данных. Компилятор автоматически генерирует для них:
equals()hashCode()toString()copy()componentN() для деструктуризацииkotlin
Sealed-классы представляют собой ограниченную иерархию классов, где все возможные подклассы известны во время компиляции. Это позволяет использовать их в выражениях when без блока else, гарантируя исчерпывающую проверку всех возможных вариантов.
kotlin
Сравнение:
| Признак | Data-класс | Sealed-класс |
|---|---|---|
| Назначение | Хранение данных | Ограниченная иерархия классов |
| Возможности | Автоматическая генерация методов | Исчерпывающая проверка в when |
| Подклассы | Нет специфичного ограничения | Должны быть определены в том же файле или модуле |
| Использование | Модели данных, DTO | Представление состояний, событий, вариантов |