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

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

bash 复制代码
public String method1(String dictVal) {
    if ("1".equals(dictVal)) {
        return "1";
    }
	return "0";
}

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

本文主要介绍以枚举类的形式存放字典值。

案例一:存放字典类型和字典值

bash 复制代码
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;
    }

}

案例二:仅存放字典值

bash 复制代码
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 代表以删除)。将常量值、字典值,以常量类、接口、枚举类的方式维护,可将代码显现得更美观,且方便今后排查问题和维护。

相关推荐
R.lin8 分钟前
使用注解将日志存入Elasticsearch
java·大数据·后端·elasticsearch·中间件
滴滴滴嘟嘟嘟.31 分钟前
全屏定时提醒工具
java·开发语言
せいしゅん青春之我39 分钟前
【JavaEE初阶】网络原理——TCP处理先发后至问题
java·网络·笔记·网络协议·tcp/ip·java-ee
星星落进兜里1 小时前
Spring全家桶面试题, 只补充细节版本
java·后端·spring
用户6120414922132 小时前
使用JSP+Servlet+JavaBean做的课程后台管理系统
java·javascript·mysql
乌暮2 小时前
数据库--JDBC编程
java·数据库·学习
小白黑科技测评2 小时前
2025 年视频去水印工具实测:擦擦视频双版本解析一键去字幕与多格式兼容能力
java·人工智能·音视频·智能电视·1024程序员节
华仔啊2 小时前
Go 语言未来会取代 Java 吗?别争了,先看完这篇再说
java·后端·go
多多*2 小时前
Spring Bean的生命周期 第二次思考
java·开发语言·rpc
小丁努力不焦虑3 小时前
c++基本语法
java·c++·算法