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)使用反射,但是反射的速度太慢了,这段代码是放在一个接口里面的,性能太差会影响接口吞吐速率!
我们可以看到上面两种方法都有一些缺点,所以我想请教各位,有没有什么更好的方法?谢谢!
java if switch 效率_Java中 switch-case 如何优化?相关推荐
- java for foreach 效率_Java中LinkedList的fori和foreach效率比较
在<Java中ArrayList的fori和foreach效率比较>中对ArrayList的两种循环方式进行了比较,本次对LinkedList的两种遍历方式进行效率的比较. 1. list ...
- java stack 类 效率_Java中ArrayList、LinkedList、Vector、Stack的比较
一.介绍 先回顾一下List的框架图 由图中的继承关系,可以知道,ArrayList.LinkedList.Vector.Stack都是List的四个实现类. AbstractList是一个抽象类,它 ...
- java switch语句套循环_java中switch语句和循环语句的使用
java中switch语句和循环语句的使用 发布时间:2020-06-17 10:49:18 来源:亿速云 阅读:121 作者:Leah 这篇文章运用简单易懂的例子给大家介绍java中switch语句 ...
- java中switch的使用_Java中Switch用法示例
1.switch使用示例 从 Java 7 开始,可以在 switch 条件判断语句中使用 String 对象.String s = "a"; switch (s) { case ...
- java中switch用法举例范围_Java中Switch用法代码示例
一.java当中的switch与C#相比有以下区别 注:在java中switch后的表达式的类型只能为以下几种:byte.short.char.int(在Java1.6中是这样), 在java1.7后 ...
- Java yield详解_Java 中的 yield 关键字
从 Java 14 开始,yield 关键字已添加到 Java 语言中,用于实现 switch 表达式. 它用于从 switch 表达式中的 case 返回值. 例如: int x = switch ...
- java enum 长度限制_Java中的Enum的使用与分析
示例: public enum EnumTest { FRANK("The given name of me"), LIU("The family name of me& ...
- java 异常处理发生异常_Java中的异常处理
java 异常处理发生异常 Exception Handling in Java is a very interesting topic. Exception is an error event th ...
- java aes 工具类_Java中的AES加解密工具类:AESUtils
本人手写已测试,大家可以参考使用 package com.mirana.frame.utils.encrypt; import com.mirana.frame.constants.SysConsta ...
最新文章
- PAT 1052. Linked List Sorting
- 解决incorrect 'only available in ES6' warning (W119) with options `moz: true, esversion: 6` 报错问题...
- 九九乘法表编程上三角python_java语言打印上三角和下三角,进一步得到九九乘法表...
- 使用Spring跟踪应用程序异常
- http请求502_从知乎页面的502说一说测试人员应该知道的HTTP协议状态码!
- opencv双目视觉标定、匹配和测量 (附代码)(转载)
- SPP Net(Spatial Pyramid Pooling in Deep Convolutional Networks for Visual Recognition)论文理解...
- 《R数据可视化手册》——2.5 绘制箱线图
- [软件更新]暴风影音2009最新特别版光盘免费赠送(暴风门特别版)
- Java eclipse汉字乱码解决
- 前端必备Javascript 书籍测评【含红宝书和绿皮书】
- [可道云文件管理kodbox 1.15] 企业网盘+云端文档管理+批量上传下载文件夹+移动端H5优化
- c语言有向网络介数,SNA社交网络算法
- 《圈子圈套3》读后感
- Json数据的对比工具,对比库(含js在线对比工具,.net 的jsondiffer包)
- vue鼠标悬停更改图片
- Snagit_日文输入法:促音,长音,小写的输入方法
- Java实现内网穿透
- Webstorm干货(开发效率快到飞起!!!)
- Unity 程序员推荐书目
热门文章
- 如何安装旧版本的 R 包
- Science:纽约西奈山医学院房刚组定量分析真核生物DNA 6mA解析细菌污染的影响...
- 单细胞转录组专题研讨会第二期
- matlab cam orbit,如何在MATLAB中平滑旋转3D绘图?
- R语言dplyr包的top_n函数返回dataframe或tibble的前N行数据、dplyr包的top_frac函数返回dataframe或tibble的前百分之N(N%)的数据
- python使用fpdf生成pdf文件:配置多种语言字体写入多种文字
- sklearn基于make_scorer函数为Logistic模型构建自定义损失函数+代码实战(二元交叉熵损失 binary cross-entropy loss)
- 基于Kmeans聚类算法的图像分割(色彩分割)实战
- R构建加权最小二乘回归模型(Weighted Least Squares Regression)
- 为什么权重初始化要非对称?为什么权重初始化不能全为0?为什么初始化值不能太大或者太小?介绍下He初始化以及Xavier初始化?