Java创建枚举类并定义使用枚举项

127 阅读2分钟

开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 10 天,点击查看活动详情

前言

在项目开发中,常量和枚举都是我们经常使用的技巧。都是为了提高开发效率。常量我们一般都会创建一个常量类,里面放一些经常使用的变量,例如:

image.png

枚举的定义和使用相比于常量,也是有异曲同工之巧的,下面就简单演示下如何定义和使用枚举

创建枚举类

首先我们要创建一个枚举类,使用IDEA的话就是创建class,然后选择Enum

image.png

一般我们的枚举类都是以xxxEnum这样命令的,表示这是一个枚举类。一般我们有两种做法

第一:创建一个系统枚举类,里面存放系统里面全部的枚举类

第二:每一个枚举类都单独创建,不混在一个大类里面

我个人比较倾向第一种,所以我就以第一种为例,开始简单介绍。

开发中按照自己的需求或者团队的需求灵活选择统一方案即可

定义枚举项

以数据库为参考,可以看到我这里有三个字段都可以定义成枚举:

image.png

下面以sex为例:

一般来说,我们都会给枚举项两个基本的属性,用于表示状态和描述,然后就可以对根据需求,定义多个枚举项了。

枚举项和常量一样,最好都要使用大写+下划线的进行定义。多个枚举项之间使用逗号隔开,最好一个枚举项使用封号结尾:

image.png

如果不是这么定义,那语法都过不去的

image.png

因为我们不会给枚举项设置值,但是通常需要使用枚举项的值,所以只需要使用@Getter进行修饰即可。

image.png

这样一个简单的枚举项就定义好了,我们可以在这个大枚举类里面定义其他的枚举项:

注意,这些枚举项都是在class中定义的,每一个单独的枚举使用enum修饰

相关代码如下:

package com.wyh.common;

import lombok.Data;
import lombok.Getter;

/**
 * @Description: 系统枚举
 * @Author: 魏一鹤
 * @Date: 2023-02-01 20:14
 **/
@Data
public class Enums {
    /**
     * 性别 0:女 1:男
     **/
    public enum SexEnum {
        SEX_WOMAN("女", 0),
        SEX_MAN("男", 1);
        @Getter
        private String desc;
        @Getter
        private int code;

        SexEnum(String desc, int code) {
            this.desc = desc;
            this.code = code;
        }
    }


    /**
     * 是否删除 0:正常 1:删除
     **/
    public enum DeleteEnum {
        DELETE_NO("正常", 0),
        DELETE_IS("删除", 1);
        @Getter
        private String desc;
        @Getter
        private int code;

        DeleteEnum(String desc, int code) {
            this.desc = desc;
            this.code = code;
        }
    }

    /**
     * 账号状态 0:正常 1:删除
     **/
    public enum StatusEnum {
        ACCOUNT_NORMAL("正常", 0),
        ACCOUNT_DISABLE("禁用", 1);
        @Getter
        private String desc;
        @Getter
        private int code;

        StatusEnum(String desc, int code) {
            this.desc = desc;
            this.code = code;
        }
    }
}


使用枚举

以性别枚举为例,我们可以获取一下它的值,为了方便,我直接写了个main方法进行测试:

image.png