Ответ
Enums в Kotlin/Java удобны, но имеют ограничения:
- Объём памяти – каждый enum-элемент это объект, что может быть избыточно для простых констант.
- Сериализация – enum’ы не всегда хорошо сериализуются (например, в Parcelable нужно явно писать name/ordinal).
- Расширяемость – нельзя добавить новые элементы в runtime.
- Производительность – сравнение через
==безопасно, ноwhenбезelseможет привести к ошибкам, если добавить новый элемент.
Пример:
enum class Direction { NORTH, SOUTH }
// Нельзя добавить EAST позже