Ich habe aus mehreren Gründen angefangen, C # - und Java-Enums in meinem Code zu verwenden:
- Sie sind viel typsicherer als Ganzzahlen, Zeichenfolgen oder Sätze von Booleschen Flags.
- Sie führen zu besser lesbarem Code.
- Es ist schwieriger, eine Aufzählung auf einen ungültigen Wert zu setzen als ein int oder eine Zeichenfolge.
- Sie erleichtern das Ermitteln der zulässigen Werte für eine Variable oder einen Parameter.
- Alles, was ich gelesen habe, zeigt an, dass sie in C # und den meisten JVMs genauso gut funktionieren wie ganze Zahlen.
Das Android-Framework hat jedoch zahlreiche Fälle, in denen Flags verschiedener Typen weitergegeben werden müssen, aber keiner von ihnen scheint Aufzählungen zu verwenden. Ein paar Beispiele , wo ich ihre Verwendung wäre denken würde vorteilhaft sind Toast.LENGTH_SHORT
/ Toast.LENGTH_LONG
und View.GONE
, View.VISIBLE
usw.
Warum ist das? Sind Aufzählungen in Dalvik schlechter als einfache ganzzahlige Werte? Gibt es einen anderen Nachteil, den ich nicht kenne?