2.枚举类的使用
在学习枚举类的时候,没有体会到枚举类的实用性,但在项目中,我们会使用大量的枚举类来定义常见的一些状态信息,这样易于扩展和维护。在本次项目中我使用了一些枚举类来简化常量的定义和使用。如响应类中的通用常量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() { } }
该枚举类中没有定义属性,其中每个值都是类成员变量。