Példa
Kategória
Nyelvi hordozhatóság: Területi beállítások kezelése

Név
Ne használja a területi beállítások neveit karaktersorozat literálként

Magyarázat
A Javában a területi beállítások nevei nem rögzítettek, azok a későbbiekben megváltozhatnak. Mindegyik területi beállítást egy egyedi Locale osztály képvisel, amik visszafele kompatibilisek. A Locale osztályokat használja a neveket tartalmazó karaktersorozatok helyett.

Megoldás
A Locale objektumot használja paraméterként a területi beállításokat használó metódusoknál.

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

private static void processEnglishString(String str) {
// A karaktersorozat feldolgozása az US területi beállítás szerint történik
}

private static void processChineseString(String str) {
// A karaktersorozat feldolgozása a kínai területi beállítás szerint történik
}
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 );
}
}