有没有欧洲国家和语言的java Enum?

时间:2010-08-14 21:23:47

标签: java enums internationalization

是否有任何java(> 5)枚举用于在某个地方列出欧洲国家/地区和语言? 如果没有,我可能会从这个列表中写下它们:http://www.nationsonline.org/oneworld/european_languages.htm

但如果我能避免这种负担,那就太棒了!

P.S。:最后,我开始在geonames.org上使用geoNames webservice。对于我在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 个答案:

答案 0 :(得分:15)

专业框架设计师不太可能在他们的图书馆中包含这样的Enum,因为一组国家(以及政治认可的官方语言集合)一直在变化。您要么必须打破向后兼容性,要使Enum对于应该工作超过几年的软件毫无用处,或者您必须在Enum中保留旧的,不再认可的国家/地区和语言

答案 1 :(得分:7)

也许Locale.getISOCountries()Locale.getISOLanguages()可以为您提供帮助。

答案 2 :(得分:7)

使用枚举来存储一些相当稳定的数据是没有错的。你还能做什么,把它存储在XML中?怎么样更好?所以你不必重新编译(这是一个huuuge麻烦)?我们在哪一年生活?

或将其存储在数据库中;当一个新的国家出生时,我们只需要在数据库中插入一行,并且智能编写的应用程序将加载它并立即使用它 - 无需重新启动应用程序!乌拉。

即使对于欧洲来说,这也是一种过度杀伤力。我确信他们不会比我们重新部署我们的应用程序更频繁地更改国家/地区,在任何现代公司中,这些应用程序每周至少发生一次。

没什么是永远的,老兄。我们能在这个太阳系中得到行星的枚举吗?根据Joshua Bloch的说法,是的 - 他在他的书中将其作为Java的最佳建议。根据你们的说法,noooooo。

嗯,至少我们只能发现新的行星,而且我们无法摧毁旧行星(在任何可预见的未来),所以行星枚举在兼容性方面还不错,对吗?

告诉冥王星。

答案 3 :(得分:1)

至少我会从该URL自动生成枚举类。您可以解析HTML,获取值并编写定义枚举的java文件。

每当此网址的内容发生变化时,您都可以重新运行自动生成器并创建新的枚举类。

但请注意 - 枚举中的每个更改都有可能在其余代码中引入错误。