Мне очень понравилось использование C # и Java-перечислений в моем коде по нескольким причинам:
- Они намного более безопасны для типов, чем целые числа, строки или наборы логических флагов.
- Они приводят к более читаемому коду.
- Труднее установить для перечисления недопустимое значение, чем для типа int или строки.
- Они позволяют легко находить допустимые значения для переменной или параметра.
- Все, что я прочитал, указывает на то, что они работают так же хорошо, как целые числа в C # и большинстве JVM.
Однако в платформе Android есть множество случаев, когда необходимо передавать флаги разных типов, но ни один из них, похоже, не использует перечисления. Вот несколько примеров, в которых я думаю, что их использование будет полезным: Toast.LENGTH_SHORT
/ Toast.LENGTH_LONG
и View.GONE
, View.VISIBLE
и т. Д.
Почему это? Производят ли перечисления хуже, чем простые целочисленные значения в Dalvik? Есть ли какой-то другой недостаток, о котором я не знаю?