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