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);
        }

二、解决方法

使用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声明常量,可以方便以后维护更新。修改变量的值时只用修改一处,还不用担心修改了其它不该修改的常量。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值