zoukankan      html  css  js  c++  java
  • 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();
  • 相关阅读:
    The Fifth Week Lucklyzpp
    The Fourth Week Lucklyzpp
    The Third Week Lucklyzpp
    The Second Week lucklyzpp
    快10年没怎么过来了,一切如常
    男女诗篇
    ubuntu安装mysql
    ubuntu配置tomcat和jdk
    ubuntu常用操作命令以及它的通道模式简解
    Ubuntu操作异常汇总
  • 原文地址:https://www.cnblogs.com/lishaojun/p/11074948.html
Copyright © 2011-2022 走看看