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

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

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();
原文地址:https://www.cnblogs.com/lishaojun/p/11074948.html