1. 程式人生 > >多個if else判斷的優雅替換

多個if else判斷的優雅替換

 最近在敲程式碼的時候,經常會遇到同事寫的一大串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 ""; } }