예제
카테고리
글로벌화: 로케일 처리

이름
로케일 이름을 문자열 리터럴로 사용 금지

설명
Java의 로케일 이름은 고정된 것이 아니므로 나중에 변경될 수 있습니다. 그러나 각 로케일은 이전 버전과 호환 가능한 고유 로케일 오브젝트로 표시됩니다. 로케일 이름이 있는 문자열 대신 로케일 오브젝트를 사용하십시오.

솔루션
로케일을 구분하는 메소드에서 로케일 오브젝트를 매개변수로 사용하십시오.

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

private static void processEnglishString(String str) {
// process string in US locale
}

private static void processChineseString(String str) {
// process string in CHINESE locale
}
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 );
}
}