Java 只有在以下情况下,区域设置才被视为完整

Java 只有在以下情况下,区域设置才被视为完整,java,locale,currency,Java,Locale,Currency,示例:在类Currency中有一个静态方法getInstance(Locale)。 但是,如果我写下如下内容: Currency currency = Currency.getInstance(Locale.forLanguageTag("it")); 它给出了一个例外(IllegalArgument..) 另一方面: Currency currency = Currency.getInstance(Locale.forLanguageTag("it-IT")); 编译没有问题 我们可以放心

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

Currency currency = Currency.getInstance(Locale.forLanguageTag("it"));
它给出了一个例外(IllegalArgument..)

另一方面:

Currency currency = Currency.getInstance(Locale.forLanguageTag("it-IT"));
编译没有问题

我们可以放心地说,如果没有国家代码和地区,它是不完整的吗

请注意,在某些情况下,指定唯一的语言是构建区域设置的有效选项:

Locale localize = Locale.forLanguageTag("it");
    System.out.println(localize.getDisplayName());
报告解释说:

返回给定区域设置所在国家/地区的货币实例。忽略区域设置的语言和变体组件

如果您检查以下各项:

返回指定IETF BCP 47语言标记字符串的区域设置

如果你最后提到,你会看到“it”是意大利语,“it”是意大利语。

解释:

返回给定区域设置所在国家/地区的货币实例。忽略区域设置的语言和变体组件

如果您检查以下各项:

返回指定IETF BCP 47语言标记字符串的区域设置


如果最后你提到,你会看到“it”是意大利语,“it”是意大利语。

你可以有一个只代表一种语言而没有国家的语言环境,这是完全有效的


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

你可以有一个地区,它只代表一种语言,没有国家,这是完全有效的

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