• 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();
  • 相关阅读:
    监听Windows消息
    把遇到过的对.Net线程的一些问题和误解集中起来和大家分享,也希望大家能一起补充,热烈欢迎讨论(转)
    推荐一个好工具:P/Invoke Interop Assistant (转)
    其它操作EDM的方式 (转载)
    DotNet(C#)自定义运行时窗体设计器 一
    通过监听Windows消息对复合控件进行整体控制(C#)一
    DotNet(C#)自定义运行时窗体设计器Runtime FormDesigner(转载)
    C# 枚举中的位运算
    Linux下cat 命令
    小端字节序与大端字节序
  • 原文地址:https://www.cnblogs.com/lishaojun/p/11074948.html
Copyright © 2020-2023  润新知