Язык setDefault() Риск в Java
У меня есть одно приложение, которое может переключать язык между английским и немецким языками. Когда на немецком языке я хочу, чтобы дисплей валюты автоматически конвертировался в немецкий формат. Поэтому в моей программе я должен выполнить проверку локали, а затем конвертировать валюту на основе выбранного языка. Я решил использовать locale.setDefault(), но я не уверен, есть ли в этом риск, или нет, основываясь на приведенном ниже утверждении, которое я нашел. Может кто-нибудь посоветовать для этого?
Заявление: "Поскольку изменение языкового стандарта по умолчанию может повлиять на многие различные области функциональности, этот метод следует использовать только в том случае, если вызывающая сторона готова повторно инициализировать чувствительный к языку код, работающий на той же виртуальной машине Java".
Благодарю.
1 ответ
Это предупреждение означает, что если у вас уже был код, инициализированный на основе другой локали, то он не будет волшебным образом слышать об изменении и обновлении локали. Например, если вы уже настроили заголовок и заголовки меню и кнопок на английском языке, а затем позвоните setDefault(Locale.GERMANY)
, весь текст все равно будет на английском. Ваш пример звучит так, как будто вы не будете менять локаль после запуска, поэтому просто позвоните setDefault
рано, прежде чем делать что-либо, что зависит от локали.