Я почав дуже любити використовувати перерахування C # та Java у своєму коді з кількох причин:
- Вони набагато безпечніші для типу, ніж цілі числа, рядки або набори логічних прапорів.
- Вони ведуть до більш читабельного коду.
- Набагато важче встановити для переліку недійсне значення, ніж int або рядок.
- Вони полегшують виявлення допустимих значень для змінної чи параметра.
- Все, що я прочитав, свідчить про те, що вони працюють так само добре, як цілі числа в C # та більшості JVM.
Однак у фреймворку Android є численні випадки, коли потрібно передавати прапори різних типів, але, схоже, жоден з них не використовує перелічення. Кілька прикладів , коли я думаю , що їх використання було б корисно в Toast.LENGTH_SHORT
/ Toast.LENGTH_LONG
і View.GONE
, View.VISIBLE
і т.д.
Чому це? Чи ефективні перерахування в Dalvik, ніж прості цілі числа? Чи є якийсь інший недолік, про який я не знаю?