Валюта на основе HTTP-запроса getLocale, выбрасывающего IllegalArgumentException - PullRequest
0 голосов
/ 30 июня 2018

Я пытаюсь получить символы валюты на основе локали, кода валюты в сервлете.

Я пытался сделать следующее, но он выбрасывает IllegalArgumentException.

Currency.getInstance(request.getlocale())

В локали язык "en", но значение страны пусто

Как получить символы валюты для локали, код валюты?

1 Ответ

0 голосов
/ 30 июня 2018

Нет смысла спрашивать валюту для локали без страны.

В какой валюте, скажем, «английский», как в вашем вопросе? Это могут быть доллары США (США), AUD (Австралия), UKP (Великобритания), EUR (Ирландия), CAD (Канада) и т. Д. И т. Д. Другими словами, не зная страну, вы не можете выбрать валюту, и в На самом деле, валюта зависит ТОЛЬКО от страны, а не от языка. Страны имеют одну официальную валюту, но могут иметь более одного языка, как в Канаде, где локали fr_CA и en_CA.

Кроме того, это довольно четко прописано в Javadoc (мой акцент):

public static Currency getInstance​(Locale locale)

Возвращает экземпляр валюты для страны данной локали. Компоненты языка и варианта локали игнорируются. Результат может меняться со временем, так как страны меняют свои валюты. Например, для первоначальных стран-членов Европейского валютного союза метод возвращает старые национальные валюты до 31 декабря 2001 года и евро с 1 января 2002 года по местному времени соответствующих стран.

Метод возвращает ноль для территорий, где нет валюты, например Антарктиды.

Параметры:

языковой стандарт - языковой стандарт, для которого страна необходим экземпляр валюты

Возвращает:

Экземпляр валюты для страны данной локали или ноль Броски:

NullPointerException - если языковой стандарт нулевой

IllegalArgumentException - если страна данной локали не является поддерживаемым кодом страны ISO 3166.

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