Перечислимые значения () .length по сравнению с частным полем

Emacs может обработать огромные размеры файла , и можно использовать его в Windows, или *отклоняют.

55
задан Esko 16 November 2009 в 02:00
поделиться

3 ответа

Использование values ​​(). Length будет создавать новую копию массива каждый раз, когда вы его вызываете. Иногда я создаю свой собственный Список (или устанавливаю, или отображаю, что мне нужно), чтобы избежать этого бессмысленного копирования. Я не стал бы жестко его кодировать ... если вам нужен только размер, я бы просто использовал:

private static final int size = Configuration.values().length;

в конце. К моменту оценки все значения будут инициализированы. Это позволяет избежать проблем с DRY и несогласованностью, поднятых в других ответах.

Конечно, это небольшая микрооптимизация сама по себе ... но в итоге получается более простой код, ИМО. Вызов values ​​(). Length из другого места не выражает того, что вас интересует,

102
ответ дан 7 November 2019 в 07:12
поделиться

Сохраняя счетчик, вы нарушаете принцип DRY , поэтому, если у вас нет очень веской причины, не следует.

8
ответ дан 7 November 2019 в 07:12
поделиться

Я бы рекомендовал использовать values ​​(). Length . Это намного элегантнее, и накладные расходы на производительность по сравнению с использованием константы будут незначительными. Кроме того, вы устраняете риск того, что константа когда-либо не будет соответствовать фактической длине перечисления.

9
ответ дан 7 November 2019 в 07:12
поделиться
Другие вопросы по тегам:

Похожие вопросы: