• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

Java优化if-else代码的实战记录

java 搞代码 4年前 (2022-01-05) 15次浏览 已收录 0个评论

开发中经常会根据不同的参数判断走不同的逻辑业务,我们常用的方法就是if/else嵌套使用,导致每增加一个需求就加一个if,慢慢的就会发现自己写的代码中出现了大量的if/else,这篇文章主要给大家介绍了关于Java优化if-else代码的相关资料,需要的朋友可以参考下

前言

开发系统一些状态,比如订单状态:数据库存储是数字或字母,但是需要显示中文或英文,一般用到if-else代码判断,但这种判断可读性比较差,也会影响后期维护,也比较容易出现bug。比如:

假设状态对应关系:1:agree 2:refuse 3:finish

 int status; String statusStr = null; if (status == 1) { status = "agree"; } else if (status == 2) { status = "refuse"; }else if(status == 3) { status = “finish”; } 

方案一: 数组

这种仅限通过数字获取到字母或者中文。

首先设置数组

 String[] statusArray = {"","agree","refuse","finish"}; 

通过数组的位置获取数组的值

 int status; String statusStr =  statusArray[status]; 
  • 优点: 占用内存少
  • 缺点: 状态值只能是数字,而且还需要考虑数组越界情况

方案二:HashMap

创建和添加map:

 private static final Map map = new HashMap(); static { map.put(1,"agree"); map.put(2,"refuse"); map.put(3,"finish"); } 

这种有两种求解方式,通过 key 获取 value 以及通过 value 获取 key,

由 key 获取 value

直接使用 get 方法即可。这里的key相对于数组解法,不限制 key 的类型。

 int status; map.get(status); 

由 value 获取 key

使用map遍历:

 int status; for(Map.Entry vo : map.entrySet()){ if (vo.getValue().equals(result)) { status = vo.getKey(); break; } } 
  • 优点:状态值不限制数字
  • 缺点:占用空间大

解决方案三:枚举

先定义一个枚举类

 public enum TestEum { agree(1,"agree"), refuse(2,"refuse"); private int code; private String capation; TestEum(int code,String capation){ this.code = code; this.capation = capation; } public int getCode() { return code; } public String getCapation() { return capation; } String of(int code){ for (TestEum testEum : TestEum.values()) { if (testEum.getCode() == code) { return testEum.getCapation(); } } return null; } } 

有了枚举以后,if-else 代码块可以优化成一行代码

 String statusStr = TestEum.of(status); 

总结

  1. 如果通过数字获取描述,使用数组即可。
  2. 如果通过描述获取数字,使用枚举和HashMap都可以。来源gaodai$ma#com搞$$代**码网

到此这篇关于Java优化if-else代码的文章就介绍到这了,更多相关Java优化if-else代码内容请搜索gaodaima搞代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持gaodaima搞代码网

以上就是Java优化if-else代码的实战记录的详细内容,更多请关注gaodaima搞代码网其它相关文章!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:Java优化if-else代码的实战记录

喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址