Раньше я определял набор связанных констант, таких как Bundle
ключи, вместе в интерфейсе, как показано ниже:
public interface From{
String LOGIN_SCREEN = "LoginSCreen";
String NOTIFICATION = "Notification";
String WIDGET = "widget";
}
Это дает мне более удобный способ сгруппировать связанные константы вместе и использовать их путем статического импорта (не реализует). Я знаю , что Android
система также использует константы в точно так же , как Toast.LENTH_LONG
, View.GONE
.
Однако мне часто кажется, что они Java Enums
предоставляют гораздо лучший и эффективный способ представления константы.
Но есть проблема Performence в использовании enums
на Android
?
Проведя небольшое исследование, я запутался. От этого вопрос
? «Избегайте Перечисления Где Вам только нужен Ints» удален от кончиков производительности Android, стало ясно , что Google
сняли „Избегайте перечисления“ от его советов по повышению эффективности, но от его официальных учебных документов Осознайте накладные памяти раздела ясно говорит: «перечисления часто требует вдвое больше памяти, чем статические константы. Вам следует строго избегать использования перечислений на Android. " Это все еще в силе? (Скажем, в Java
версиях после 1.6)"
Еще одна проблема, которую я заметил, - это отправка enums
с intents
использованием, Bundle
я должен отправить их путем сериализации (то есть putSerializable()
, что я считаю дорогостоящей операцией по сравнению с примитивным putString()
методом, хотя и enums
предоставляет ее бесплатно).
Может кто-нибудь пояснить, какой из них лучше всего представляет то же самое Android
? Должен ли я строго избегать использования enums
на Android
?