什么是Java中的魔法值?

什么是Java中的魔法值?

魔法数值、魔法数字、魔法值,这是一个东西,不同的叫法。

所谓魔法值,是指在代码中直接出现的数值,只有在这个数值记述的那部分代码中才能明确了解其含义。

看一段代码

/**
  * 获取当前周所有的日期
  *
  * @return
  */
 public static List<String> getRangeDayOfWeek() {
     List<String> list = new ArrayList<>();
     // 日期格式转换
     SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
     // 时间调整到本周一
     Calendar instance = Calendar.getInstance();
     instance.set(instance.get(Calendar.YEAR), instance.get(Calendar.MONDAY), instance.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
     instance.set(Calendar.DAY_OF_WEEK, Calendar.MONDAY);
     //循环打印
     for (int i = 1; i <= 7; i++) {
         list.add(sdf.format(instance.getTime()));
         instance.add(Calendar.DAY_OF_WEEK, 1);
     }
     return list;
 }

解决

使用static final 定义常量或使用enum值

static final int WEEK_DAYS= 7;

注:使用static final 声明常量,可以方便以后维护更新。修改变量的值时只用修改一处,还不用担心修改了其他不该修改的常量。

总结

魔法值的问题对于代码逻辑来说,并不是什么要命的事情,即使不修改也基本不影响代码的正常运行,我以前没有安装阿里代码检查规范时,一样这么使用,也没出现过啥问题。好吧,应该说但是了。但是,遵循公认的代码规范,可以有效的避免开发过程的一些小问题(最让人头疼的往往都是一些小问题引起的),提升开发的效率和代码的可阅读性,老老实实按照规范来,自然就会受益良多,继续加油!

原文 

https://lida1024.top/2020/01/20/什么是Java中的魔法值?/

本站部分文章源于互联网,本着传播知识、有益学习和研究的目的进行的转载,为网友免费提供。如有著作权人或出版方提出异议,本站将立即删除。如果您对文章转载有任何疑问请告之我们,以便我们及时纠正。

PS:推荐一个微信公众号: askHarries 或者qq群:474807195,里面会分享一些资深架构师录制的视频录像:有Spring,MyBatis,Netty源码分析,高并发、高性能、分布式、微服务架构的原理,JVM性能优化这些成为架构师必备的知识体系。还能领取免费的学习资源,目前受益良多

转载请注明原文出处:Harries Blog™ » 什么是Java中的魔法值?

赞 (0)
分享到:更多 ()

评论 0

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