Java中的魔法值和解决方法

目录

一、什么是魔法值

二、解决方法


一、什么是魔法值

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

所谓魔法值,是指在代码中直接出现的数值,只有在这个数值记述的那部分代码中才能明确了解其含义,数字意义必须通过阅读其他代码才能推断出来,这样给后期维护或者其他人员阅读代码,带来了极大不便。

例如:

if( flag = 5 ){
	a = 2;
}else{
    a = 3;
}

当其他人员阅读时就会引起深深的疑问:为什么flag=5时做这个?flag=5背后隐藏着什么秘密?flag=5意味着什么? 如果时间久,原开发人员也要重新看代码才能明白当时的深意,这就大大增加了二次开发和维护时的难度。

我的错误

原代码如下:

 String region ="360723";
        if ("360723".equals(region) || Constant.ADMIN.equals(Common.isBlank(user.get("roleCode")))) {
            Map para = new HashMap();
            para.put("code",region);
            para.put("codeLike","1");
            List regionList = regionService.selectListByPara(para);
            request.setAttribute("regionList", regionList);
        }

Java中的魔法值和解决方法_第1张图片

二、解决方法

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

    // 区划码
    protected static final String REG = "360723";
 // 区划码
    protected static final String REG = "360723";
    
    public String list(HttpServletRequest request) {
        Map user = ShiroUtil.getCurrentUser();
        String region ="360723";
        if (REG.equals(region) || Constant.ADMIN.equals(Common.isBlank(user.get("roleCode")))) {
            Map para = new HashMap();
            para.put("code",region);
            para.put("codeLike","1");
            List regionList = regionService.selectListByPara(para);
            request.setAttribute("regionList", regionList);
        }

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

你可能感兴趣的:(代码规范,java,代码规范)