前言
在项目开发中,常量和枚举都是我们经常使用的技巧。都是为了提高开发效率。常量我们一般都会创建一个常量类,里面放一些经常使用的变量,例如:
枚举的定义和使用相比于常量,也是有异曲同工之巧的,下面就简单演示下如何定义和使用枚举
创建枚举类
首先我们要创建一个枚举类,使用IDEA的话就是创建class,然后选择Enum
一般我们的枚举类都是以xxxEnum这样命令的,表示这是一个枚举类。一般我们有两种做法
第一:创建一个系统枚举类,里面存放系统里面全部的枚举类
第二:每一个枚举类都单独创建,不混在一个大类里面
我个人比较倾向第一种,所以我就以第一种为例,开始简单介绍。
开发中按照自己的需求或者团队的需求灵活选择统一方案即可
定义枚举项
以数据库为参考,可以看到我这里有三个字段都可以定义成枚举:
下面以sex为例:
一般来说,我们都会给枚举项两个基本的属性,用于表示状态和描述,然后就可以对根据需求,定义多个枚举项了。
枚举项和常量一样,最好都要使用大写+下划线的进行定义。多个枚举项之间使用逗号隔开,最好一个枚举项使用封号结尾:
如果不是这么定义,那语法都过不去的
因为我们不会给枚举项设置值,但是通常需要使用枚举项的值,所以只需要使用@Getter进行修饰即可。
这样一个简单的枚举项就定义好了,我们可以在这个大枚举类里面定义其他的枚举项:
注意,这些枚举项都是在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方法进行测试:
System.out.println(SEX_WOMAN.getDesc());
System.out.println(SEX_WOMAN.getCode());
总结
总的来说,枚举确实可以帮助我们优化代码,提高效率。这只是最简单的定义和使用,后面开发中如果遇到深化的使用场景,再回来补充