Когда-то давным-давно, когда всяких котлинов у нас еще не было, и мы писали под андроид на джаве, ходили разговоры, что использовать енумы нельзя, несмотря на то, что они есть. Говорили, что слишком накладно по памяти.
И вместо них предлагалось использовать... просто int
или String
константы со специальными аннотациями @IntDef
и @StringDef
, для того чтобы во время компиляции проверить, что вы туда ничего незаконного не запихали. В рантайме пихайте что хотите, такова цена за свободные байты в памяти. 🖥
Сейчас это, конечно, как прикол звучит. Да и тогда звучало как прикол, несмотря на то, что основания под собой это всё имеет. Якобы телефоны тогда были недостаточно крутыми, чтобы енумы в памяти держать. Но вообще, они даже не deprecated ещё, бери и пользуйся.
Мне всегда это казалось экономией на спичках, поэтому я просто всё это время спокойно пережил пользуясь енумами. Нормально вроде жил, оценки в сторе хорошие мне ставили. Ну а сейчас ещё и памяти на любом девайсе в несколько раз больше чем у марсохода, поэтому такое, кажется, никого уже не волнует.