1.业务场景
在业务场景中,经常会出现很复杂的if else嵌套,譬如下面这种情况:👇👇👇
// 请按你的实际需求修改参数 public String convertCountryName(String fullName) { if ("china".equalsIgnoreCase(fullName)) { return "CN"; } else if ("america".equalsIgnoreCase(fullName)) { return "US"; } else if ("japan".equalsIgnoreCase(fullName)) { return "JP"; } else if ("england".equalsIgnoreCase(fullName)) { return "UK"; } else if ("france".equalsIgnoreCase(fullName)) { return "FR"; } else if ("germany".equalsIgnoreCase(fullName)) { return "DE"; } else { throw new RuntimeException("unknown country"); } }
对于上面的代码,可能我们大体上看还挺舒服的,可读性也不错。但是假设我们的业务需要支持地球上所有国家的名字与简写的转换,那么以目前的写法,将会出现有上百个if else,这样一来,代码的可读性、可扩展性等方面都将得不到一个好的保障。
所以我们能不能考虑对这上百个if-else进行优化呢?
2.优化代码
我在这里给出两种优化方式:①采用枚举实现;②采用Map实现。
/** * */ public enum CountryEnum { china("CN"), america("US"), japan("JP"), england("UK"), france("FR"), germany("DE"), ; private String fullName; CountryEnum(String fullName) { this.fullName = fullName; } public String getFullName() { return fullName; } }