Какие знаешь ограничения у enum

«Какие знаешь ограничения у enum» — вопрос из категории Kotlin, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Enums в Kotlin/Java удобны, но имеют ограничения:

  1. Объём памяти – каждый enum-элемент это объект, что может быть избыточно для простых констант.
  2. Сериализация – enum’ы не всегда хорошо сериализуются (например, в Parcelable нужно явно писать name/ordinal).
  3. Расширяемость – нельзя добавить новые элементы в runtime.
  4. Производительность – сравнение через == безопасно, но when без else может привести к ошибкам, если добавить новый элемент.

Пример:

enum class Direction { NORTH, SOUTH }
// Нельзя добавить EAST позже