写代码是一种艺术,结构层次好的代码可以少出bug,提高效率。而在Java编程中,什么时候用常量,什么时候用枚举呢?曾经的我也迷茫过。当然,经历了多年的编程之后,也陆陆续续有了自己的思考。
在我看来,具备一定规则的常量集合需要使用枚举类,既包含一年四季,一周七天这种自然枚举,也包含在编译时就知道所有可能值的其它情况,比如加减乘除等运算。枚举值不必是固定的,可以在后面继续添加。
而对于毫无规则归类可言的一些常量:如SUCCUSS字符串、密钥串、路径等等这些,可以放在一个常量类里面糅在一起。在《Effective Java》一书中,作者建议使用一般类加私有构造方法的方式,而在 sonar 代码质量扫描中,也将该方式定为常量类处理的推荐方式。
而相对于常量类,枚举的优点是很明显的。枚举更具可读性、更安全,并且功能更强大。许多枚举不需要明显的构造器和成员变量,而有些枚举通过为每个枚举值绑定数据,并且为这些数据提供函数,可以添加额外的功能,枚举值也可以直接用来进行数据库存储。
总而言之,建议在具备相关性的前提下,能使勇枚举的地方一定要要用枚举,如果无法使用枚举时,建议使用带有私有构造函数的常量类。
作者:夕阳雨晴,欢迎关注我的头条号:偶尔美文,主流Java,为你讲述不一样的码农生活。
原创文章,作者:普尔小编,如若转载,请注明出处:http://www.puerpx.cn/pxwd/1658.html