枚举类使用-常量

一、简单demo

public enum Explain {

    /**
     * 未知事件
     */
    CUSTOM_UNKONWN("", "未知事件"),
    /**
     * 新增成功
     */
    INSERT_SUCCESS("200", "新增成功"),

    /**
     * 修改成功
     */
    UPDATE_SUCCESS("200", "修改成功"),

    /**
     * 删除成功
     */
    DELETE_SUCCESS("200", "删除成功"),

    /**
     * 关联成功
     */
    RELEVANCE_SUCCESS("200", "关联成功");


    public static Explain fromStrByName(String name) {
        if (name == null || "".equals(name.trim())) {
            return CUSTOM_UNKONWN;
        }
        //不变异原始字串-如果传递一个空字符串,它将返回一个空字符串。
        name = name.toUpperCase();

        try {
            return Explain.valueOf(name);
        } catch (Exception ex) {
            return CUSTOM_UNKONWN;
        }
    }


    Explain(String name, String describe) {
        this.name = name;
        this.describe = describe;
    }

    private String name;
    private String describe;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getDescribe() {
        return describe;
    }

    public void setDescribe(String describe) {
        this.describe = describe;
    }
}

二、封装思想

使用枚举类解决部分常量问题

public interface IResultCode extends Serializable {
    String getMessage();

    int getCode();
}

枚举类封装信息

public enum ResultCode implements IResultCode {
    SUCCESS(200, "操作成功"),
    FAILURE(400, "业务异常"),
    UN_AUTHORIZED(401, "请求未授权"),
    REPEAT_LOGIN(4010, "重复登录"),
    NOT_FOUND(404, "404 没找到请求"),
    MSG_NOT_READABLE(400, "消息不能读取"),
    METHOD_NOT_SUPPORTED(405, "不支持当前请求方法"),
    MEDIA_TYPE_NOT_SUPPORTED(415, "不支持当前媒体类型"),
    REQ_REJECT(403, "请求被拒绝"),
    INTERNAL_SERVER_ERROR(500, "服务器异常"),
    DUPLICATE_KEY_ERROR(555, "数据重复"),
    PARAM_MISS(400, "缺少必要的请求参数"),
    PARAM_TYPE_ERROR(400, "请求参数类型错误"),
    PARAM_BIND_ERROR(400, "请求参数绑定错误"),
    PARAM_VALID_ERROR(400, "参数校验失败");

    final int code;
    final String message;

    public int getCode() {
        return this.code;
    }

    public String getMessage() {
        return this.message;
    }

    private ResultCode(int code, String message) {
        this.code = code;
        this.message = message;
    }
}

posted @   东楚  阅读(118)  评论(0编辑  收藏  举报
(评论功能已被禁用)
编辑推荐:
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· AI与.NET技术实操系列(五):向量存储与相似性搜索在 .NET 中的实现
· 超详细:普通电脑也行Windows部署deepseek R1训练数据并当服务器共享给他人
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示