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

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

1,枚举类型的简单理解:枚举类型就是包含了有限个枚举对象集合的类,而枚举对象就是集合中其中一个,可以使用枚举类名直接调用。

  需要注意的是:

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

  2)枚举类型的构造方法是私有方法,因为枚举类型的对象已经在类中列举了,且是有限了,不能创建对象

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

import lombok.ToString;

@ToString
public enum CommonCode implements ResultCode {

    SUCCESS(true, 10000, "操作成功!"),
    FAIL(false, 11111, "操作失败!"),
    UNAUTHENTICATED(false, 10001, "此操作需要登陆系统!"),
    UNAUTHORISE(false, 10002, "权限不足,无权操作!"),
    SERVER_ERROR(false, 99999, "抱歉,系统繁忙,请稍后重试!"),
    INVALID_PARAM(false,10003,"非法参数!");
    //    private static ImmutableMap<Integer, CommonCode> codes ;
    //操作是否成功
    boolean success;
    //操作代码
    int code;
    //提示信息
    String message;

    private CommonCode(boolean success, int code, String message) {
        this.success = success;
        this.code = code;
        this.message = message;
    }

    @Override
    public boolean success() {
        return success;
    }

    @Override
    public int code() {
        return code;
    }

    @Override
    public String message() {
        return message;
    }
}
package com.xuecheng.framework.model.response;

/** * Created by mrt on 2018/3/5. * 10000-- 通用错误代码 * 22000-- 媒资错误代码 * 23000-- 用户中心错误代码 * 24000-- cms错误代码 * 25000-- 文件系统 */public interface ResultCode {    //操作是否成功,true为成功,false操作失败    boolean success();    //操作代码    int code();    //提示信息    String message();

}
ResultCode 中定义了响应的基本信息,包含:是否成功,响应码,响应信息,在多模块开发中可以起到规范的作用。
CommonCode 为各个模块通用的响应码,包含了通用的异常信息,也可以为每一个模块定义自定义的响应码,继承 ResultCode 即可。  

使用枚举类型定义响应实现定义:
@Data@ToString@NoArgsConstructorpublic class ResponseResult implements Response {

    //操作是否成功    boolean success = SUCCESS;

    //操作代码    int code = SUCCESS_CODE;

    //提示信息    String message;

    public ResponseResult(ResultCode resultCode){        this.success = resultCode.success();        this.code = resultCode.code();        this.message = resultCode.message();    }}
public interface Response { // 定义常量    public static final boolean SUCCESS = true;    public static final int SUCCESS_CODE = 10000;}

使用举例(不需要响应实体对象):

new ResponseResult(CommonCode.FAIL);

对于需要同时返回实体对象和响应码的,可以继承 ResponseResult 并添加实体类到属性即可

@Data
public class PageResult extends ResponseResult {
    Page page;

    public PageResult(ResultCode resultCode,Page page) {
        super(resultCode);
        this.Page = page;
    }
}

使用举例(需要响应实现对象):

new ResponseResult(CommonCode.FAIL,new Page());
 

原文地址:https://www.cnblogs.com/lishaojun/p/11074948.html

时间: 2024-11-09 13:58:37

Java枚举类型在后台响应中的使用的相关文章

向Java枚举类型中添加新方法

除了不能继承enum之外,可将其看做一个常规类.甚至可以有main方法. 注意:必须先定义enum实例,实例的最后有一个分号. 下面是一个例子:返回对实例自身的描述,而非默认的toString返回枚举实例的名字. public enum Color { RED("红色", 1), GREEN("绿色", 2), BLANK("白色", 3), YELLO("黄色", 4); // 成员变量 private String nam

java 枚举类型分析

最近做android开发,需要用到枚举值,这样可以连续赋值,我按之前c++那样书写,如下所示: public enum ColorSelect { RED_BAGE = 0, GREEN_BAGE, BLUE_BAGE; } 编译不过. 我将赋值语句修改了以后,如下所示: public enum ColorSelect { RED_BAGE , GREEN_BAGE, BLUE_BAGE; } 编译通过.说明C++那样的赋值方法不适用java.所以,我需要弄清楚的是: 1. 在java平台上,如

【转】掌握java枚举类型(enum type)

原文网址:http://iaiai.iteye.com/blog/1843553 1   背景 在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量.之前我们通常利用public final static 方法定义的代码如下,分别用1 表示春天,2表示夏天,3表示秋天,4表示冬天. Java代码   public class Season { public static final int SPRING = 1; public static final int 

【转】java枚举类型enum的使用

原文网址:http://blog.csdn.net/wgw335363240/article/details/6359614 java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义.既然不明白就抽时间研究下吧. Java 中的枚举

java 枚举类型enum 的使用

java 枚举类型enum 的使用 最近跟同事讨论问题的时候,突然同事提到我们为什么java 中定义的常量值不采用enmu 枚举类型,而采用public final static 类型来定义呢?以前我们都是采用这种方式定义的,很少采用enum 定义,所以也都没有注意过,面对突入起来的问题,还真有点不太清楚为什么有这样的定义.既然不明白就抽时间研究下吧. Java 中的枚举类型采用关键字enum 来定义,从jdk1.5才有的新类型,所有的枚举类型都是继承自Enum 类型.要了解枚举类型,建议大家先

【转载】Java枚举类型的使用

枚举类型概念 [java] view plain copy package com.lxq.enumm; public class EnumDemoOne { private enum InnerEnum { RED, GREEN, YELLOW }; public static void main(String[] args) { System.out.println(InnerEnum.RED); System.out.println(InnerEnum.GREEN); System.out

java枚举类型

jvm并不支持枚举类型,java中枚举类型是在编译器层面上实现的,先看如下代码: package demo.nio; public class EnumDemo { public static enum Color{ Red(20), Green(10), Blue(30); Color(int v){ this.value = v; } private int value; public int getValue(){ return this.value; } } public static

java枚举类型详解

枚举类型是JDK1.5的新特性.显然,enum很像特殊的class,实际上enum声明定义的类型就是一个类.而这些类都是类库中Enum类的子类(java.lang.Enum<E>).它们继承了这个Enum中的许多有用的方法. 示例: 1 public enum Color { 2 3 RED("红色"),BLUE("蓝色"),WHITE("白色"),BLACK("黑色"),YELLO("黄色")

Java枚举类型enum

枚举的语法 1.Enum的全称为enumeration,中文俗称枚举类,学过C/C++等语言的人,应该都对它略知一二. 但在Java语言规范中,是在JDK 5版本中才引入的,存放在 java.lang 包中.在Java版的Enum实质是语法糖,其声明方式如下: [代码1] package com.enumtest; public enum Color { RED,BLUE,BLACK,YELLOW,GREEN //注意这里可以没有分号 } enum是用来声明枚举的关键字,声明定义的类都隐含继承了