码迷,mamicode.com
首页 > 编程语言 > 详细

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

时间:2019-06-24 00:21:52      阅读:233      评论:0      收藏:0      [点我收藏+]

标签:tco   package   ror   java   权限   comm   ati   提示   mutable   

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

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
@NoArgsConstructor
public 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());

 


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

标签:tco   package   ror   java   权限   comm   ati   提示   mutable   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!