Zacząłem bardzo lubić używanie wyliczeń C # i Java w moim kodzie z kilku powodów:
- Są znacznie bardziej bezpieczne dla typów niż liczby całkowite, łańcuchy lub zestawy flag logicznych.
- Prowadzą do bardziej czytelnego kodu.
- Trudniej jest ustawić wyliczenie na nieprawidłową wartość niż wartość typu int lub string.
- Ułatwiają odkrywanie dozwolonych wartości zmiennej lub parametru.
- Wszystko, co przeczytałem, wskazuje, że działają one równie dobrze jak liczby całkowite w C # i większości maszyn JVM.
Jednak struktura systemu Android ma wiele przypadków, w których flagi różnych typów muszą być przekazywane, ale żaden z nich nie wydaje się używać wyliczeń. Kilka przykładów gdzie myślę, że ich stosowanie byłoby korzystne są Toast.LENGTH_SHORT
/ Toast.LENGTH_LONG
a View.GONE
, View.VISIBLE
itp
Dlaczego to? Czy wyliczenia działają gorzej niż proste wartości całkowite w Dalvik? Czy jest jakaś inna wada, której nie jestem świadomy?