admin管理员组文章数量:1794759
Java代码中的魔法值
什么是魔法值
魔法值 是代码中莫名其妙出现的数字,数字意义必须通过阅读其他代码才能推断出来,这样给后期维护或者其他人员阅读代码,带来了极大不便。
举例:
if( flag = 5 ){ a = 2; }flag=5意味着什么? 这就是魔法值!
魔法值的来源在对数据的处理过程中,为了充分利用机器的存储性能,数据库存储时往往使用更加简单的数值来代表复杂的名词含义,如使用1、2、3、4等数值来代表状态信,0、1来代表false和true等
魔法值的危害- 数值使用不规范,多处使用不统一,修改时工作量大且容易遗漏
- 数值使用错误,程序不产生异常,但业务逻辑数据出现问题
- 常量字符串作为key时拼写错误,key值无对应value,导致数据异常或缓存无法命中
- 静态常量
仅在当前类中使用或在方法内部使用的值,可以通过定义静态常量的方式来避免魔法值的出现。 注意:静态常量定义时约定名称的所有字母都要大写,以此表示该标识为不变常量
- 枚举类
枚举类能够约束静态常量的定义规范,提供统一格式的静态常量值,在统一异常等内容红广泛使用。
例子:
public enum CommonCodeEnum{ // '状态信(1-未审核,2-已审核,3-审核通过, 4-审核作废)', STATUS_INFO_1(1, "未审核"), STATUS_INFO_2(2, "已审核"), STATUS_INFO_3(3, "审核通过"), STATUS_INFO_4(4, "审核作废"); private int code; private String caption; ComnCodeEnum(int code, String caption) { this.code = code; this.caption = caption; } public int code() { return code; } public String caption(){ return caption; } }- 总结
- 开发中要不断提升自己的代码规范意识,项目中一大半的bug都是由于代码不规范造成的
- 善用各种代码规范工具,如阿里巴巴Java开发规范插件,代码质量扫描工具等,发现并解决问题、学习积累知识
版权声明:本文标题:Java代码中的魔法值 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686842994a109233.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论