当前位置: 首页 > news >正文

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

一些常量,如果以硬编码的方式写在代码里,到后续不方便维护。如果把项目转接给其他同事,这些魔法值更容易产生歧义并产生不必要的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.mrgr.cn/news/56180.html

相关文章:

  • Unity3D 如何实现从任意位置与方向出发后按规定方向到达目标点详解
  • YOLOv8模型改进 第十三讲 添加卷积和注意力融合模块(CAFM) 提升小目标和遮挡检测
  • 什么是“钻石继承问题”
  • 深入探索 RocketMQ:高性能分布式消息中间件
  • 通过OpenCV实现 Lucas-Kanade 算法
  • k8s 配置私有镜像仓库认证
  • 【Qt】控件——Qt输入类控件、常见的输入类控件、输入类控件的使用、Line Edit、Text Edit、Combo Box、Spin Box
  • 《地下蚁国》风灵月影十项修改器使用教程
  • LLM 量化新篇章:FlatQuant 的平坦之道
  • HTMX 和 WebStencils 白皮书
  • gazebo显示urdf
  • 三部门联合推铁路电子客票,百望云率先完成产品配置,助力财务服务数智化升级
  • 安达发|家电组装多厂协同APS计划排程软件介绍
  • 网关挂了服务还能正常运行吗?
  • Spring Boot 3.3 【八】整合实现高可用 Redis 集群
  • 【1024程序员节】如何快速掌握人工智能技术技能
  • 【人工智能】Transformers之Pipeline(二十):令牌分类(token-classification)
  • “销量飞跃秘籍:打造吸引力销售网络与革新招商策略“
  • MyHdfs代码分享
  • Codeforces Round 974 (Div. 3) F. Sheriff‘s Defense(树形DP)
  • 最佳简历--JAVA程序员的项目经验如何写
  • Linux 基础目录与命令操作
  • 创建型模式-----(单例模式)
  • 数据仓库-维度表和事实表
  • Linux: network: tcp:__sk_mem_raise_allocated;确保公平
  • C#第四讲:C#语言基本元素概览,初识类型、变量与方法,算法简介