多個if else判斷的優雅替換
阿新 • • 發佈:2018-12-08
最近在敲程式碼的時候,經常會遇到同事寫的一大串if else 判斷程式碼,明知道這樣寫不好,但是又不知道從何下手優化,例如下面這個:
之後學習“重構”這本書的時候,恰巧遇到了解決這類問題的一個思路,自己寫了一個小demo,分享給大家:
public class Ifelseoptimic {
public static void main(String[] args) {
String[] param = new String[]{"vincent"};
//優化前
System.out.print(foundPerson(param));
//優化後
System.out.print(foundPerson(param));
}
public static String foundPerson(String[] persons){
for(int i=0;i<persons.length;i++){
if(persons[i].equals("celine")){
return "celine";
}
if(persons[i].equals("vincent")){
return "vincent";
}
if(persons[i].equals("tom")){
return "tom";
}
if(persons[i].equals("Bob")){
return "Bob";
}
if(persons[i].equals("jack")){
return "jack";
}
if (persons[i].equals("jackson")){
return "jackson";
}
if(persons[i].equals("lili")){
return "lili";
}
}
return "";
}
public static String foundPersonNew(String[] persons){
List nameList = Arrays.asList(new String[] {"celine","vincent","tom","Bob","jack","jackson","lili"});
for(int i=0;i<persons.length;i++){
if(nameList.contains(persons[i])){
return persons[i];
}
}
return "";
}
}