在学习枚举类的时候,没有体会到枚举类的实用性,但在项目中,我们会使用大量的枚举类来定义常见的一些状态信息,这样易于扩展和维护。在本次项目中我使用了一些枚举类来简化常量的定义和使用。如响应类中的通用常量Code(ResultTypeEnum),通用的常量状态值(StatusEnum),注解中的通用常量类型(Modular、BusinessType)。
1.ResultTypeEnum
public enum ResultTypeEnum {
SYS_SUCCESS("200", "接口验证通过"),
SYS_REQUEST_ERROR("204", "请求格式错误"),
SYS_TOKEN_ERROR("800", "token错误"),
SYS_AUTHORIZATION_ERROR("801", "权限不足"),
SYS_TOKEN_EXPIRED_ERROR("802", "token过期,请重新登录"),
SYS_USER_NOT_LOGIN_ERROR("803", "用户未登录,请登录后进行操作"),
SYS_USER_DISABLE_ERROR("804", "用户停用,请联系管理员"),
SYS_ERROR("900", "系统内部错误,请联系管理员"),
REMOTE_USER_INFO_ERROR("910", "远程系统调用失败(用户信息接口)"),
BIZ_SUCCESS("200000", "操作成功"),
BIZ_ERROR("200001", "业务异常"),
BIZ_NULL("200002", "空值异常"),
BIZ_USER_INFO_ERROR("200700", "用户信息错误"),
BIZ_USERNAME_ERROR("200701", "用户名或密码错误"),
BIZ_PASSWORD_ERROR("200702", "用户名或密码错误"),
BIZ_PARAMETER_ERROR("200703", "参数错误"),
BIZ_CAPTCHA("200600", "验证码错误"),
BIZ_CAPTCHA_EXPIRED("200601", "验证码失效,请重新获取验证码"),
BIZ_SCENE_BIND_CAMERA_ERROR("200602", "摄像头已存在于所选摄像头清单中"),
BIZ_UPLOAD_PIC_SIZE_ERROR("200801", "图片大小不能超过5000KB"),
BIZ_UPLOAD_PIC_ERROR("200802", "图片上传失败"),
BIZ_UPLOAD_PIC_FORM_ERROR("200803", "图片格式不正确"),
DOC_UPLOAD_ERROR("200804", "文件大小已超出限制,请重新选择文件"),
PROCEDURE_EXECUTE_ERROR("200901", "规程执行错误");
private String value;
private String desc;
private ResultTypeEnum(String value, String desc) {
this.value = value;
this.desc = desc;
}
public String getDesc() {
return this.desc;
}
public void setDesc(String desc) {
this.desc = desc;
}
public String getValue() {
return this.value;
}
public void setValue(String value) {
this.value = value;
}
public Integer getValueInteger() {
return Integer.parseInt(this.value);
}
public static String getName(String code) {
ResultTypeEnum[] var1 = values();
int var2 = var1.length;
for(int var3 = 0; var3 < var2; ++var3) {
ResultTypeEnum val = var1[var3];
if (val.getValue().equals(code)) {
return val.desc;
}
}
return null;
}
响应类中的通用常量
我们可以在枚举类中定义其属性,构造方法、Set、get方法。
2.StatusEnum
package com.ku.owo.common.enums;
public enum StatusEnum {
DEL(0, "删除"),
NORMAL(1, "未删除"),
DISABLE(2, "禁用");
private int code;
private String value;
StatusEnum(int code, String value) {
this.code = code;
this.value = value;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
}
通用状态常量
3.Modular
package com.ku.owo.common.enums;
/**
* @author wuqs
* @date 2021年11月12日 17:16
*/
public class Modular {
public static final String HOME = "首页";
public static final String SYS_LOG = "系统日志";
public static final String SYS_MENU = "系统菜单";
public static final String SYS_USER = "用户管理";
public static final String SYS_LOGIN = "登录管理";
public static final String SYS_ROLE = "角色管理";
public static final String SYS_DEPT = "机构管理";
public static final String PIC = "图片管理";;
public enum ModularEnum {
HOME("home", "首页"),
SYS_LOG("sys_log", "系统日志"),
SYS_MENU("sys_menu", "系统菜单"),
SYS_USER("sys_user", "用户管理"),
SYS_LOGIN("sys_login", "用户管理"),
SYS_ROLE("sys_role", "角色管理"),
SYS_DEPT("sys_dept", "机构管理"),
PIC("pic", "图片管理");
String value;
String name;
ModularEnum(String value, String name) {
this.value = value;
this.name = name;
}
public String getValue() {
return value;
}
public void setValue(String value) {
this.value = value;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
注解常用常量类型
前面是类中的静态成员变量,后面是枚举类。
4.BusinessType
public enum BusinessType {
OTHER,
INSERT,
UPDATE,
DELETE,
GRANT,
EXPORT,
IMPORT,
FORCE,
GENERATE_CODE,
CLEAN;
private BusinessType() {
}
}
注解中常用常量类型
该枚举类中没有定义属性,其中每个值都是类成员变量。