Kiedyś definiowałem zestaw powiązanych stałych, takich jak Bundle
klucze razem w interfejsie jak poniżej:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Zapewnia mi to przyjemniejszy sposób grupowania powiązanych stałych razem i używania ich przez import statyczny (nie implementuje). Wiem Android
ramy stosowane są także stałe w taki sam sposób jak Toast.LENTH_LONG
, View.GONE
.
Jednak często czuję, że Java Enums
zapewniają znacznie lepszy i potężniejszy sposób przedstawiania stałej.
Ale czy istnieje problem wydajno w użyciu enums
na Android
?
Po krótkich badaniach znalazłem się w zamieszaniu. Z tego pytania
„Unikaj wyliczeń tam, gdzie potrzebujesz tylko Ints” zostało usunięte ze wskazówek dotyczących wydajności Androida? Jasne jest, że Google
usunięto „Unikaj wyliczeń” ze wskazówek dotyczących wydajności, ale z oficjalnych dokumentów szkoleniowych Należy pamiętać o sekcji poświęconej pamięci, która wyraźnie mówi: „Wyliczenia często wymagają więcej niż dwa razy więcej pamięci niż stałe statyczne. Należy bezwzględnie unikać wyliczeń w systemie Android. „ Czy to nadal jest dobre? (Powiedzmy w Java
wersjach po 1.6)
Jeszcze jedna kwestia, że obserwowana jest przesłanie enums
całej intents
użyciu Bundle
powinienem wysłać je przez szeregowania (czyli putSerializable()
, że myślę, że operacja kosztowna w porównaniu do pierwotnej putString()
metodzie, mimo iż enums
stanowi to za darmo).
Czy ktoś może wyjaśnić, który z nich jest najlepszy do reprezentowania tego samego w Android
? Czy powinienem unikać używania enums
na Android
?