Я использую перечисления для замены констант String
в моем приложении java (JRE 1.5).
Есть ли производительность, когда я обрабатываю перечисление как статический массив имен в методе, который вызывается постоянно (например, при визуализации пользовательского интерфейса)?
Мой код выглядит примерно так:
public String getValue(int col) {
return ColumnValues.values()[col].toString();
}
Разъяснения:
- Я занимаюсь скрытой стоимостью, связанной с повторным перечислением
values()
(например, внутри методов paint()). - Теперь я вижу, что все мои сценарии включают в себя некоторое преобразование
int
= >enum
, которое не является способом Java.
Какова фактическая цена извлечения массива values()
? Это даже проблема?
Разработчики Android
Прочтите ответ Саймона Лангхофа ниже, который ранее указывал Geeks On Hugs в комментариях к принятому ответу. Enum.values()
должен сделать защитную копию