在开发中我们总会遇到很多需要根据不同的状态活着标识判断执行不同的操作,当有大量的这种代码出现时,对于后期的维护就是灾难
int a = 1; if(a == 1){ }else if(a == 2){ doSomeThing(); }else if(a == 3){ doSomeThing(); }else if(a == 4){ doSomeThing(); }else if(a == 5){ doSomeThing(); }else if(a == 6){ doSomeThing(); }
那我们怎么来优化这种问题呢?这时候枚举就可以登场了
public interface TestI { void ifElse(String type); } enum TestIImpl implements TestI{ TEST_I{ @Override public void ifElse(String type) { System.out.println("zou ni: " + type); } }, TEST_II{ @Override public void ifElse(String type) { System.out.println("zou bu liao le ni: " + type); } }; public static void main(String[] args) { //以下代码代替的就是大量的重复的if else出现的地方 String roleName = "TEST_I"; TestIImpl.valueOf(roleName).ifElse("hah"); } }
有没有觉得简洁了很多,鄙人粗略的理解,有问题地方欢迎指正。