Java进阶学习——Alibaba Java Coding Guidelines的理解之为什么不要使用魔法值

0.前言

在使用一些数字的时候经常会出现请魔法值的提示,这个让初学者我很懵,啥意思,一个数字还能成为魔法值?到底有啥魔法呢?一起去探寻一下。

1.问题分析

这个提示一般都是在一些数字下面,比如如下代码:

public static void main(String[] args) {
        //10下面提示
        for (int i=0;i<10;i++){
            System.out.println(i);
        }

我点进去看这个提示的完整信息得到了不允许任何魔法值(即未经定义的常量)直接出现在代码中。 也就是说这些数字是未经定义的常量。

2.问题解决

既然不让未经定义的常量直接出现,那么我就先定义下,再调用一下,代码如下:

public static void main(String[] args) {
        int peopleCount = 10;
        for (int i = 0; i < peopleCount; i++) {
            System.out.println(i);
        }
    }

此时就没有提示了。

3.出现的原因

这应该就是大家最关心的了,我们想一下阿里巴巴Java开发规范的目的是啥,最重要的一点就是提高程序可读性。如果按照第一个那样写,这个10代表的是什么意思?为什么是10,而不是9呢?此时如果想了解还需要翻阅注释或者文档,但如果我提前定义了这个常量peopleCount,我就知道了,原来这里是想循环输出每个人的序号。而前面这个写法没有这个直观。这就是这样提示的原因,由衷的感觉很有必要。

4.总结

这次我对这个手册更加佩服了,初学Java(包括绝大多数编程语言)对于常量的定义都是非常随意的直接写出来,想循环几次就写几,没有考虑过这个数字后面的含义,这给阅读程序的人带来极大的阅读困难,不利于团队协作。所以我感觉不要使用魔法值很有必要,我在以后的团队开发中也要注意这一点,使用常量之前先定义,并命名规范。这样才能真正的适应以后的企业级开发。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值