Java常量定义注意事项

常量事实上是那些内容不能被修改的变量,常量与变量类似也需要初始化,即在声明常量的同时要赋 予一个初始值。常量一旦初始化就不可以被修改。它的声明格式为:

final 数据类型 变量名 = 初始值;

final关键字表示最终的,它可以修改很多元素,修饰变量就变成了常量。

在Java常量定义也需要注意以下的常见问题:
1:不允许任何魔法值(即未经预先定义的常量)直接出现在代码中。
反例:String key = “Id#taobao_” + tradeId;
cache.put(key, value);

2:在 long 或者 Long 赋值时,数值后使用大写的 L,不能是小写的 l,小写容易跟数字 1 混淆,造成误解。

3:不要使用一个常量类维护所有常量,要按常量功能进行归类,分开维护。
正例:缓存相关常量放在类 CacheConsts 下;系统配置相关常量放在类 ConfigConsts 下。

4:常量的复用层次有五层:跨应用共享常量、 内共享常量、类内共享常量。
1) 跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。
2) 应用内共享常量:放置在一方库中,通常是子模块中的 constant 目录下。
反例:易懂变量也要统一定义成应用内共享常量,两位攻城师在两个类中分别定义了表示 “是”的变量:
类 A 中:public static final String YES = “yes”;
类 B 中:public static final String YES = “y”;
A.YES.equals(B.YES),预期是 true,但实际返回为 false,导致线上问题。
3) 子工程内部共享常量:即在当前子工程的 constant 目录下。
4) 包内共享常量:即在当前包下单独的 constant 目录下。
5) 类内共享常量:直接在类内部 private static final 定义。

5:如果变量值仅在一个固定范围内变化用 enum 类型来定义。
正例:

public enum SeasonEnum {
	SPRING(1), SUMMER(2), AUTUMN(3), WINTER(4);
	private int seq;
	SeasonEnum(int seq){
		this.seq = seq;
	}
}

以上内容仅供参考学习,如有侵权请联系我删除!
如果这篇文章对您有帮助,左下角的大拇指就是对博主最大的鼓励。
您的鼓励就是博主最大的动力!

发布了120 篇原创文章 · 获赞 11 · 访问量 6950

猜你喜欢

转载自blog.csdn.net/weixin_45366499/article/details/105258025
今日推荐