Java枚举类型的理解及在后台响应中的使用

摘要:
在前后台分离开发过程中,统一响应的格式可以使用枚举类型进行规范开发,对于不同的错误/异常类型可以响应不同的状态码和响应信息。1,枚举类型的简单理解:枚举类型就是包含了已经创建好对象的final类,这个final类的开始是一些枚举变量,枚举变量可以有多个值,这些参数被赋给了枚举对象,枚举对象可以通过枚举类调用枚举变量获取。

在前后台分离开发过程中,统一响应的格式可以使用枚举类型进行规范开发,对于不同的错误/异常类型可以响应不同的状态码和响应信息。

1,枚举类型的简单理解:枚举类型就是包含了已经创建好对象的final类,这个final类的开始是一些枚举变量,枚举变量可以有多个值,这些参数被赋给了枚举对象,

枚举对象可以通过枚举类调用枚举变量获取。

总结以下几点:

1)枚举类型不能被继承或者实现(final)

2)枚举类型的构造方法默认为private,且只能为private,也就是说不能new对象,只能使用“已经创建好的枚举对象”

(1)枚举类型必须提供枚举对象参数所对应的构造方法

(2)由于只能有私有构造方法,所以枚举类型不能继续其他类,但是可以实现接口和其他枚举类型。

3)除过上述两点外,枚举类和其他普通类没什么区别,也可以有属性,也可以有setter&getter,实际上,枚举类必须有枚举参数对应的属性,

不然枚举变量中赋的值是没有意义的,是无法获取到。

2,枚举类型响应码举例:

/**
枚举类
* @author Jong
*/
public enum ProcessEnum {
SUBMIT_SUCCESS(1,"处理提交成功"),
SUBMIT_FAIL(-1,"处理提交失败"),
EXECUTE_FAIL(-2,"处理执行失败"),
EXECUTE_SUCCESS(2,"处理成功");
private int code;
private String message;
ProcessEnum(int code, String message) {
this.code = code;
this.message = message;
}
public int getCode() {
return code;
}
public String getMessage() {
return message;
}
}
/**
* 通用响应信息
*/
@Data
public class Response {
private int code;
private String message;
public Response(ProcessEnum processEnum) {
this.code = processEnum.getCode();
this.message = processEnum.getMessage();
}
}
/**
* 增强响应信息
*/
@Data
public class TaskResponse extends Response {
private String taskId;
public TaskResponse(ProcessEnum processEnum, String taskId) {
super(processEnum);
this.taskId = taskId;
}
}
枚举对象的一个重要的使用场景就是,解决硬编码的问题,作用类似于类中的常量,只不过有多个维度的值,所以大多数情况下不直接操作枚举对象,枚举类提供了两个很有用的静态
方法来操作枚举变量:
ProcessEnum executeSuccess = ProcessEnum.valueOf("EXECUTE_SUCCESS");
ProcessEnum[] enums = ProcessEnum.values();

免责声明:文章转载自《Java枚举类型的理解及在后台响应中的使用》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇delphi 中 image 控件加载bmp、JPG、GIF、PNG等图片的办法JavaWeb项目架构之NFS文件服务器下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

数据分析--降维--LDA和PCA

一、因子分析   因子分析是将具有错综复杂关系的变量(或样本)综合为少数几个因子,以再现原始变量和因子之间的相互关系,探讨多个能够直接测量,并且具有一定相关性的实测指标是如何受少数几个内在的独立因子所支配,并且在条件许可时借此尝试对变量进行分类。   因子分析的基本思想   根据变量间相关性的大小把变量分组,使得同组内的变量之间的相关性(共性)较高,并用一...

MCGS触摸屏操作日志功能

  一, 问题描述实现操作日志功能,记录关键操作的当前操作人员以及对应操作内容和时间。 二, 构思过程昆仑通态HMI支持触发存盘功能,并且支持字符串等各类型变量的储存,对应在各关键操作按钮内设置好操作内容文本,将操作内容及当前用户储存下来即可,储存记录内默认自带时间戳。 三, 实现过程当前客户有这样一个工程:每次启动之后,用户登录之后才能对应进入操作界面;...

Activity快速入门理解

​ 在Java领域,JBPM和Activity是两个主流的工作流系统,而Activity的出现无疑将会取代JBPM(Activity的开发者就是从Jbpm开发者出来的 1. 1个插件 在Eclipse中安装Activity插件,让你可以在Eclipse中绘制Activity工作流图 2. 1个引擎 ProcessEngine对象,Activity工作流引擎...

用户输入和while循环

函数input()的工作原理 message=input('Tell me something,and I will repeat it back to you:') print(message) 编写清晰的程序 #有时,提示可能超过一行,可将提示存储在一个变量中,再将该变量传递给函数input()。 prompt='If you tell us who...

OpenGL ES着色器语言----------------储存修饰符

一、存储修饰符 本地变量只能使用存储修饰符const。 函数参数只能用const。函数返回值类型和结构体字段不要使用const。 从一个运行时着色器到下一个运行时着色器之间进行数据类型通信是不存在的。这阻止了同一个着色器在多个顶点和片元之间同时执行。 没有存储修饰符或仅仅使用const修饰符的全局变量,可能在main()执行前进行初始化。Uniforms...

调整的R方_如何选择回归模型

 python风控建模实战lendingClub(博主录制,catboost,lightgbm建模,2K超清分辨率) https://study.163.com/course/courseMain.htm?courseId=1005988013&share=2&shareId=400000000398149     1.选择最简单模型  ...