java if switch 效率_Java中 switch-case 如何优化?
代码样式如下:
switch(code) {
case 1:
//调用方法
method1();
break;
case 2:
//调用方法
method2();
break;
case 3:
//调用方法
method3();
break;
case 4:
//调用方法
method4();
break;
case 5:
//调用方法
method5();
break;
case 6:
//调用方法
method6();
break;
case 7:
//调用方法
method7();
break;
case 8:
//调用方法
method8();
break;
case 9:
//调用方法
method9();
break;
case 10:
//调用方法
method10();
break;
case 11:
//调用方法
method11();
break;
case 12:
//调用方法
method12();
break;
case 13:
//调用方法
method13();
break;
case 14:
//调用方法
method14();
break;
case 15:
//调用方法
method15();
break;
case 16:
//调用方法
method16();
break;
case 17:
//调用方法
method17();
break;
default:
//调用方法
methodDefalut();
break;
}
这段switch代码已经是很整洁了,但由于条件太多,switch语句就变得很长了!而且这样写不符合开闭原则,每增加一个条件,就又要修改这段代码!可读性也会随着长度增长而变差!
所以,我想请教各位大佬,如何写一个优雅的代码来替换上面这段代码?
我有已经想到两种方法:
(1)使用容器,每个方法都换成一个类,但这样的话,就要多加 17个类!(如果能解决类的数量过多问题,就好了)
(2)使用反射,但是反射的速度太慢了,这段代码是放在一个接口里面的,性能太差会影响接口吞吐速率!
我们可以看到上面两种方法都有一些缺点,所以我想请教各位,有没有什么更好的方法?谢谢!