前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >分享一下我是怎么使用枚举的

分享一下我是怎么使用枚举的

作者头像
半月无霜
发布于 2023-04-08 03:13:04
发布于 2023-04-08 03:13:04
42900
代码可运行
举报
文章被收录于专栏:半月无霜半月无霜
运行总次数:0
代码可运行

分享一下我是怎么使用枚举的

一、介绍

对于java枚举不陌生了,直接上代码

二、代码

使用了一个接口,用来规定一下里面的字段,统一下好处理

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.banmoon.test.enums;

public interface MyEnum<T> {

    T getCode();

    String getMsg();

}
代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package com.banmoon.test.enums;

import lombok.AllArgsConstructor;
import lombok.Getter;

import java.util.Arrays;

@Getter
@AllArgsConstructor
public enum EnableStatusEnum implements MyEnum<Integer>{
    ZERO(0, "禁用"),
    ONE(1, "正常"),
    ;

    public final Integer code;
    public final String msg;

    public static EnableStatusEnum getByCode(Integer code) {
        return getByCode(code, null);
    }

    public static EnableStatusEnum getByCode(Integer code, EnableStatusEnum defaultEnum) {
        return Arrays.stream(values()).filter(a -> a.getCode().equals(code)).findFirst().orElse(defaultEnum);
    }

    public static String getMsgByCode(Integer code) {
        return getMsgByCode(code, "");
    }

    public static String getMsgByCode(Integer code, String defaultMsg) {
        return Arrays.stream(values()).filter(a -> a.getCode().equals(code)).findFirst().map(EnableStatusEnum::getMsg).orElse(defaultMsg);
    }

}

大家也都知道,枚举这东西对于一批固定的几个状态值进行管理。

通常是某张表的一些状态值,如果一张表里面有多个状态值,我们可以这样写一个常量类,里面放置每一个字段的枚举类

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
package io.yunshuo.dataset.enums;

import io.yunshuo.commons.tools.exception.RenException;
import io.yunshuo.dataset.entity.DataDatasetVersionEntity;
import lombok.AllArgsConstructor;
import lombok.Getter;

public class DataVersionConstant {

    /**
     * 导入状态 0:无状态 1:导入中 2:导入完成
     */
    @Getter
    @AllArgsConstructor
    public enum ImportStatus {

        STATUS_LESS(0, "无状态"),
        IMPORTING(1, "导入中"),
        IMPORT_SUCCESS(2, "导入成功"),
        ;

        private final Integer code;
        private final String msg;
    }

    /**
     * 导出状态 0:无状态 1:导出中 2:导出完成
     */
    @Getter
    @AllArgsConstructor
    public enum ExportStatus {

        STATUS_LESS(0, "无状态"),
        EXPORTING(1, "导出中"),
        EXPORT_SUCCESS(2, "导出成功"),
        ;

        private final Integer code;
        private final String msg;
    }

    /**
     * 标注状态 0:未标注  1:手动标注中  2:自动标注中  3:自动标注完成  4:标注完成
     */
    @Getter
    @AllArgsConstructor
    public enum AnnotateStatus {

        NOT_ANNOTATE(0, "未标注"),
        ANNOTATING(1, "手动标注中"),
        AUTO_ANNOTATING(2, "自动标注中"),
        AUTO_ANNOTATE_SUCCESS(32, "自动标注完成"),
        ANNOTATE_SUCCESS(4, "标注完成"),
        ;

        private final Integer code;
        private final String msg;
    }

    /**
     * 增强状态 0:无状态  1:增强中  2:增强完成
     */
    @Getter
    @AllArgsConstructor
    public enum EnhanceStatus {

        STATUS_LESS(0, "无状态"),
        ENHANCING(1, "增强中"),
        ENHANCE_SUCCESS(2, "增强完成"),
        ;

        private final Integer code;
        private final String msg;
    }

    /**
     * 清洗状态 0:无状态  1:清洗中  2:清洗完成
     */
    @Getter
    @AllArgsConstructor
    public enum CleanStatus {

        STATUS_LESS(0, "无状态"),
        CLEANING(1, "清洗中"),
        CLEAN_SUCCESS(2, "清洗完成"),
        ;

        private final Integer code;
        private final String msg;
    }

}

三、最后

没什么技术含量的,就是分享一下,我是这样使用枚举的

我觉得挺清晰明了的

我是半月,你我一同共勉!!!

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023-04-07,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 分享一下我是怎么使用枚举的
    • 一、介绍
    • 二、代码
    • 三、最后
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档