Przykład
Kategoria
Globalizacja: Obsługa ustawień narodowych

Nazwa
Unikaj używania nazw ustawień narodowych jako literałów łańcuchowych

Wyjaśnienie
W języku Java nazwy ustawień narodowych nie są określone trwale i mogą być w przyszłości zmodyfikowane. Jednak każde ustawienie narodowe jest reprezentowane przy użyciu unikalnego obiektu Locale, w przypadku którego będzie zapewniona zgodność z wcześniejszymi wersjami. Zamiast łańcucha nazwy ustawień narodowych należy użyć tego obiektu Locale.

Rozwiązanie
Jako parametru w metodach, w których rozróżniane są ustawienia narodowe, użyj obiektu Locale.

public static final String CHINESE_LOCALE_STRING = "CHINESE"; //$NON-NLS-1$

private static void processEnglishString(String str) {
// przetwórz łańcuch przy użyciu ustawień narodowych Stanów Zjednoczonych (US)
}

private static void processChineseString(String str) {
// przetwórz łańcuch przy użyciu ustawień narodowych chińskich (CHINESE)
}
public static void processString(String str, Locale locale){
if (Locale.CHINA.equals(locale)){
processChineseString(str);
}else {
processEnglishString(str);
}
}


public static void main(String[] args) {
String str = "\u4e1c\u897f\u5357\u5317\u4e2d";//$NON-NLS-1$
if ( CHINESE_LOCALE_STRING.equals( args[0] ) ){
processString( str, Locale.CHINA );
}else {
processString( str, Locale.US );
}
}