0

示例:在类Currency中有一个静态方法getInstance(Locale locale)。但是,如果我写类似:

Currency currency = Currency.getInstance(Locale.forLanguageTag("it"));

它给出了一个例外(IllegalArgument..)

另一方面:

Currency currency = Currency.getInstance(Locale.forLanguageTag("it-IT"));

编译没有问题。

我们可以有把握地说,没有国家代码,语言环境就不完整吗?

请注意,在某些情况下,指定唯一的语言是构造 Locale 的有效选项:

Locale localize = Locale.forLanguageTag("it");
    System.out.println(localize.getDisplayName());
4

2 回答 2

2

您可以拥有一个仅代表一种没有国家/地区的语言的语言环境,这是完全有效的。

但是你不能从一种语言中得到一种货币,因为货币与国家有关,而不是与语言有关。意大利这个国家有货币,意大利语没有...

于 2013-06-08T12:33:36.860 回答
1

Currency#getInstance的javadoc解释说:

返回给定语言环境所在国家/地区的 Currency 实例。语言环境的语言和变体组件被忽略

如果您检查Locale#forLanguageTag javadoc

返回指定 IETF BCP 47 语言标记字符串的语言环境。

如果最后你参考这些标签是如何工作的,你会看到“it”是意大利语,“it_IT”是 Italian_Italy。

于 2013-06-08T12:12:20.183 回答