我有这个功能
private static string countryToLanguage(String countryCode){
if (countryCode.equal("AD")) {return "ca"}
else if (countryCode.equal("AE")) {return "ar"}
else if (countryCode.equal("AG")) {return "en"}
...
}
他们是更有效的方法吗?由于它是一个静态函数,因此我不能使用任何类型的全局变量(如哈希图)
答案 0 :(得分:14)
因为它是一个静态函数,所以我不能使用任何类型的全局变量(如哈希图)
当然可以。
private static final HashMap<String, String> LANGUAGES = new HashMap<>();
static {
LANGUAGES.put("AD", "ca");
// TODO: rest of mappings go here
}
private static String countryToLanguage(String countryCode){
return LANGUAGES.get(countryCode);
}
答案 1 :(得分:2)
使用字符串开关:
switch (countryCode) {
case "AD": return "ca";
case "AE": return "ar";
case "AG": return "en";
// etc.
default:
// Do something if not found,
// e.g. throw IllegalArgumentException,
// or return a default value.
}
答案 2 :(得分:1)
如果您的项目中包含番石榴,则可以执行以下操作:
private static final Map<String, Integer> LANGUAGES = ImmutableMap
.of("a", "A",
"b", "B",
"c", "C");