Язык setDefault() Риск в Java

У меня есть одно приложение, которое может переключать язык между английским и немецким языками. Когда на немецком языке я хочу, чтобы дисплей валюты автоматически конвертировался в немецкий формат. Поэтому в моей программе я должен выполнить проверку локали, а затем конвертировать валюту на основе выбранного языка. Я решил использовать locale.setDefault(), но я не уверен, есть ли в этом риск, или нет, основываясь на приведенном ниже утверждении, которое я нашел. Может кто-нибудь посоветовать для этого?

Заявление: "Поскольку изменение языкового стандарта по умолчанию может повлиять на многие различные области функциональности, этот метод следует использовать только в том случае, если вызывающая сторона готова повторно инициализировать чувствительный к языку код, работающий на той же виртуальной машине Java".

Благодарю.

1 ответ

Решение

Это предупреждение означает, что если у вас уже был код, инициализированный на основе другой локали, то он не будет волшебным образом слышать об изменении и обновлении локали. Например, если вы уже настроили заголовок и заголовки меню и кнопок на английском языке, а затем позвоните setDefault(Locale.GERMANY), весь текст все равно будет на английском. Ваш пример звучит так, как будто вы не будете менять локаль после запуска, поэтому просто позвоните setDefault рано, прежде чем делать что-либо, что зависит от локали.

Другие вопросы по тегам