Java: 'перечисление' по сравнению со 'строкой' как параметры

Запустите программу, используя CTRL + F5

9
задан Ande TURNER 19 November 2008 в 00:15
поделиться

6 ответов

Я полагал бы, что Перечисления лучший подход, чем Строки. Они безопасны с точки зрения типов и выдерживают сравнение их, быстрее, чем сравнение Строк.

Как пред альтернатива Java 1.5 Вы могли использовать безопасный с точки зрения типов перечислимый шаблон, предложенный Joshua Bloch в его книге Эффективный Java. Поскольку безопасные с точки зрения типов перечисления видят также http://www.javacamp.org/designPattern/enum.html

23
ответ дан 4 December 2019 в 06:00
поделиться

Если Ваш набор параметров ограничен и известен во время компиляции, использовать enum.

Если Ваш набор параметров открыт и unkown во время компиляции, используйте строки.

14
ответ дан 4 December 2019 в 06:00
поделиться

Если Вы обращаетесь к System.setProperty (), System.getProperty (), или System.getenv (), я думаю, что Строки являются соответствующими здесь, так как набор возможных ключей открыт. Основной параметр соответствует фактическому значению текста/строкового типа в некотором файле или хранилище где-нибудь.

Если бы у Вас есть замкнутое множество ключей, я думаю, что перечисления были бы очень предпочтены.

4
ответ дан 4 December 2019 в 06:00
поделиться

Просто, потому что Вы объявляете a public final String как что-то, что Вы ожидаете передать в метод в качестве параметра, нет ничего мешающего мне передать в чем-либо, мне нравится.

Используя enums означает, что я не могу создать свой собственный объект передать в, защитив обе стороны проблемы. Единственное время я могу думать, что необходимо использовать постоянные строки вместо перечислений, - то, если необходимо предусмотреть пространство для пользователя для расширения метода для добавления пользовательской функциональности...

5
ответ дан 4 December 2019 в 06:00
поделиться

Я изучил "метод наименьшего количества удивления". Инстинктивно, использование перечисления является правильной вещью. Таким образом, я пошел бы для него. Я уверен, что производители Java мыслят одинаково.

Править: Превосходное объяснение ПОЛИТИКОВ: http://benpryor.com/blog/2006/06/29/api-design-the-principle-of-least-surprise/

3
ответ дан 4 December 2019 в 06:00
поделиться

Использование строк в существующих API не является плохой практикой; это - плохая практика для изменения API просто, потому что Java имеет теперь поддержку перечислений. Для новых API я соглашаюсь с тем, что все другие сказали.

0
ответ дан 4 December 2019 в 06:00
поделиться
Другие вопросы по тегам:

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