这是我的代码:
public static String getLocalLanguage() {
switch(Lang.valueOf(Locale.getDefault().getCountry().toLowerCase())) {
case it:
case de:
case fr:
case en:
case pr:
case sp:
return Locale.getDefault().getCountry().toLowerCase();
default:
return "it";
}
}
Lang是一个枚举类型
public enum Lang {
it,en,sp,fr,de,pr
}
当然我的代码会抛出一个Exeception,因为如果我调用getLocalLanguage并且Locale.getDefault返回一些不存在的Enum Lang(例如gb)会引发异常..
那我怎么解决这个问题呢?
我的目标是返回“it”,“de”,“fr”,“en”,“pr”,“sp”,如果localLanguage是其他东西,我想返回“它”..
你能帮助我实现这个目标吗?
答案 0 :(得分:0)
试试这个:
private static final Set<String> LANGUAGES = new HashSet<String>();
static {
LANGUAGES.add("it");
... add the others ...
}
public static String getLocalLanguage() {
String lang = Locale.getDefault().getCountry().toLowerCase();
if (LANGUAGES.contains(lang)) {
return lang;
}
return "it";
}
答案 1 :(得分:0)
try {
Lang lang = Lang.valueOf(Locale.getDefault().getCountry().toLowerCase());
return lang.toString();
} catch (IllegalArgumentException e) { // Thrown by Lang.valueOf when not found.
Logger.getLogger(getClass().getName()).info("...");
return "it";
}