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

背景:代码中出险了大量的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);
    }
}

你可能感兴趣的:(java)