Существует ли какой-либо java Enum европейских стран и языков?

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

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

PS: Наконец, я начинаю использовать веб-сервис 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()

6
задан Andrew Tobilko 3 December 2017 в 23:58
поделиться

4 ответа

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

15
ответ дан 8 December 2019 в 03:08
поделиться

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

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

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

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

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

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

7
ответ дан 8 December 2019 в 03:08
поделиться

Возможно, вам помогут Locale.getISOCountries () и Locale.getISOLanguages ​​() .

7
ответ дан 8 December 2019 в 03:08
поделиться

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

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

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

1
ответ дан 8 December 2019 в 03:08
поделиться
Другие вопросы по тегам:

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