java使用枚举类存常量字典值

embedded/2024/10/23 10:52:16/

一些常量,如果以硬编码的方式写在代码里,到后续不方便维护。如果把项目转接给其他同事,这些魔法值更容易产生歧义并产生不必要的bug,如下代码所示:

public String method1(String dictVal) {if ("1".equals(dictVal)) {return "1";}return "0";
}

时间久后,在没有注释或注释不完整的情况下,可能开发人员自己都不知道这些魔法值代表什么意思,还得花时间研究。因此,开发人员应将一些字典值,放在常量类,枚举类中存放。

本文主要介绍以枚举类的形式存放字典值。
案例一:存放字典类型和字典值

public enum TaskResultEnums {SUCCESS("ok", "3"),RUNNING("waiting", "2"),FAILED("error", "1");TaskResultEnums(String label, String value) {this.label = label;this.value = value;}private final String label;private final String value;public String getLabel() {return label;}public String getValue() {return value;}public static String getValueByLabel(String label) {TaskResultEnums[] enums = TaskResultEnums.values();for (TaskResultEnums anEnum : enums) {if (anEnum.label.equals(label)) {return anEnum.value;}}return FAILED.value;}}

案例二:仅存放字典值

public enum TaskRunStateEnums {// 完成AVAILABLE("available"),// 运行中RUNNING("running");TaskRunStateEnums(String value) {this.value = value;}private final String value;public String getValue() {return value;}
}

总结:编码时,务必避免将常量值、字典值,以“魔法值”的形式硬编码写到方法中或者sql语句中,当然一些通用的除外(例如数据的删除标识 is_deleted 0 代表未删除, 1 代表以删除)。将常量值、字典值,以常量类、接口、枚举类的方式维护,可将代码显现得更美观,且方便今后排查问题和维护。


http://www.ppmy.cn/embedded/129798.html

相关文章

vscode配色主题推荐:Andromeda !

vscode配色主题推荐:Andromeda ! 图标库 vscode-icons ! Andromeda:Dark theme with a taste of the universe; 仙女座:一套宇宙深空体验的哑暗色主题; 高对比度,色彩饱和; Easy Installation Open the extensions sidebar on Visual Studio CodeSearc…

without OpenSSL

一、问题背景 在排查线上问题是发现 jsch 无法连接到服务器,但是大部分服务器可以连接,于是查阅 jsch 工具的 release note 发现服务器上所使用的算法该工具都支持,但发现有如下现象。 现象一 通过 jsch 工具无法 ssh 到服务器,j…

mysql大屏统计

我们在做大屏项目的时候,会用到很多统计的功能,最常见的功能就是统计数量,比如有一个注册功能,要统计有多少条记录通过审核,多少条记录没通过审核,审核通过率是多少等等,最常用的统计sql语句如下,使用count…

解码专业术语——应用系统开发项目中的专业词汇解读

文章目录 引言站点设置管理具体要求包括: Footer管理基于URL的权限控制利用数据连接池优化数据库操作什么是数据连接池?优化的优势 利用反射改造后端代码,AJAX反射的作用及其在后端代码中的应用AJAX 实现前后端无刷新交互 引言 创新实践项目二…

|动漫爬取|001_djangodjango基于Spark的国漫推荐系统的设计与实现2024_tpd6q1o4

目录 系统展示 开发背景 代码实现 项目案例 获取源码 博主介绍:CodeMentor毕业设计领航者、全网关注者30W群落,InfoQ特邀专栏作家、技术博客领航者、InfoQ新星培育计划导师、Web开发领域杰出贡献者,博客领航之星、开发者头条/腾讯云/AW…

windows安装nvm重启后,命令‘nvm‘ 不是内部或外部命令,也不是可运行的程序 或批处理文件。

这是由于环境变量的位置可能出现了问题,此时应该去手动更改环境变量的位置 1.点击系统 2.然后点击关于,进入系统高级设置 3.点击环境变量 4.查看这两个东西的安装位置是否正确,如果不正确,点击编辑进行重写,写完记得点…

代码随想录算法训练营Day09 | 151.翻转字符串里的单词、卡码网:55.右旋转字符串、28. 实现 strStr()、459.重复的子字符串

文章目录 151.翻转字符串里的单词思路与重点 卡码网:55.右旋转字符串思路与重点 28. 实现 strStr()思路与重点 459.重复的子字符串思路与重点 字符串总结和双指针总结 151.翻转字符串里的单词 题目链接:151. 反转字符串中的单词 - 力扣(Leet…

Web应用程序的设计与前端开发

我们的客户专门从事自动化系统的开发和支持,用于分析、报告、规划和其他业务任务,以及集成外部产品。 任务 我们的客户开始开发一个用于企业业务分析的web应用程序。他们自己处理后端,而我们的团队负责界面和前端。界面不仅在视觉上具有吸引…