利用枚举enum解决多if.....else if ..问题

来源:互联网 发布:其待君王乎 编辑:程序博客网 时间:2024/06/08 08:13

背景:代码中出险了大量的if..else if…结构语句,是代码的可读性变差,代码重复度高,对于有代码洁癖的人来说,看着就别扭,如:

String name = "";        if(name.endsWith("jack")){        }else if(name.endsWith("mike")){        }else if(name.endsWith("lili")){        }else{        }

可以利用enum进行改写
demo.java代码如下

package com.star.enumTest;import org.apache.log4j.Logger;public class Demo1 {    private static Logger log = Logger.getLogger(Demo1.class);    public static void main(String[] args) {        Demo1 d = new Demo1();        String str = d.getName("jack");        System.out.println(str);    }    protected String getName(String userID){        //循环枚举类,其实是循环定义在枚举类中的枚举        for(flow t:flow.values()){            if(userID!=null&&userID.trim().equals(t.getTag())){                String str = t.handle(userID);                return str;            }        }        return "没有改配置方法";    }    //定义枚举类    enum flow{        //给枚举自定义方法        JACK("jack"){            @Override            public String handle(String userID) {                return "jack";            }        },        MIKE("make"){            public String handle(String userID) {                return "mike";            }        },        LILI("lili"){            @Override            public String handle(String userID) {                return "lili";            }        };        //枚举属性        private final String tag;        flow(String tag){            this.tag = tag;        }        public String getTag(){            return tag;        }        public abstract String handle(String userID);    }}