Есть ли какие-нибудь java enum европейских стран и языков? - PullRequest
6 голосов
/ 15 августа 2010

Есть ли java (> 5) enum для перечисления европейских стран и языков где-нибудь? Если их нет, я, вероятно, напишу их из этого списка: http://www.nationsonline.org/oneworld/european_languages.htm

Но если бы я мог избежать этого бремени, это было бы здорово!

P.S .: Наконец, я начинаю использовать веб-сервис geoNames на geonames.org. Для стран, которые я использую этот фрагмент в Groovy:

import org.geonames.*

ToponymSearchCriteria sc = new ToponymSearchCriteria()
sc.setContinentCode("eu")
sc.setFeatureCode("PCLI")
def res = WebService.search(sc)
def countries = res.getToponyms().collect{it.countryName}.sort()

Ответы [ 4 ]

15 голосов
/ 15 августа 2010

Маловероятно, что профессиональные разработчики фреймворков включат такой Enum в свою библиотеку, потому что набор стран (и набор политически признанных официальных языков) все время меняется.Вам придется либо нарушить обратную совместимость, что делает Enum довольно бесполезным для программного обеспечения, которое должно работать дольше, чем несколько лет, либо вам придется сохранить старые, непризнанные страны и языки в Enum.

7 голосов
/ 15 августа 2010

Нет ничего плохого в том, чтобы использовать enum для хранения довольно стабильных данных. Что еще можно сделать, сохранить его в XML? Как это лучше? Таким образом, вам не нужно перекомпилировать (что является большой проблемой)? В каком году мы живем?

или сохранить его в базе данных; когда рождается новая страна, нам просто нужно вставить строку в базу данных, и приложение, грамотно написанное, загрузит его и сразу же использует - без перезапуска приложения! Hurray.

Даже для Европы это такое излишество. Я уверен, что они не меняют страны чаще, чем мы повторно внедряем наши приложения, что в любой современной компании происходит по крайней мере раз в неделю.

Ничто не вечно, чувак. Можем ли мы иметь список планет в этой солнечной системе? По словам Джошуа Блоха, да - он упоминает это в своей книге как лучшие советы для Java. По вашему мнению, ребята, нееееет.

Ну, по крайней мере, мы могли бы открывать только новые планеты, и мы не можем уничтожить старые планеты (в любом обозримом будущем), поэтому перечисление планет в порядке, насколько совместимо, верно?

Скажите это Плутону.

7 голосов
/ 15 августа 2010

Может быть Locale.getISOCountries() и Locale.getISOLanguages() вам помогут.

1 голос
/ 15 августа 2010

По крайней мере, я автоматически генерирую класс enum из этого URL. Вы можете проанализировать HTML-код, получить значения и написать файл Java, который определяет перечисление.

И всякий раз, когда содержимое этого URL изменяется, вы можете перезапустить автогенератор и создать новый класс enum.

Но учтите - каждое изменение в enum может привести к ошибкам в остальной части кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...