建议 2:莫让常量蜕变成变量

说起来,感觉有点胡扯呢?常量中添加final和static怎么可能发生改变呢?不能够进行二次复制吧!
下面,我们可以就这段程序一块看一下。

public class Client {   
    public static void main(String[] args) {
        System.out.println("常量会变哦:" + Const.RAND_CONST);
    }
}

/*接口常量*/
interface Const{
    //这还是常量吗?
    public static final int RAND_CONST = new Random().nextInt();
}

RAND_CONST是常量吗?他的值会发生变化吗?答案是肯定的,并且这种定义方式也是极其不可取的,常量就是常量,在编译期间就应该确定他的值,而不是在运行期间再对其进行改动。否则,一方面程序的可读性会很差;一方面谁知道在执行过程这种会发生什么幺蛾子呢?
甭想着常量会变的这个功能来实现序列号算法、随机种子生成,除非是项目中的唯一解决方案(不能够吧!),所以常量还是作为常量使用吧!

猜你喜欢

转载自blog.csdn.net/A_BlackMoon/article/details/84872244