Java枚举类型在后台响应中的使用
2020-12-13 03:25
标签:tco package ror java 权限 comm ati 提示 mutable 在前后台分离开发过程中,统一响应的格式可以使用枚举类型进行规范开发,对于不同的错误/异常类型可以响应不同的状态码和响应信息。 1,枚举类型的简单理解:枚举类型就是包含了有限个枚举对象集合的类,而枚举对象就是集合中其中一个,可以使用枚举类名直接调用。 需要注意的是: 1)枚举类型不能被继承或者实现 2)枚举类型的构造方法是私有方法,因为枚举类型的对象已经在类中列举了,且是有限了,不能创建对象 2,枚举类型响应码举例: 使用举例(不需要响应实体对象): 对于需要同时返回实体对象和响应码的,可以继承 ResponseResult 并添加实体类到属性即可 使用举例(需要响应实现对象): Java枚举类型在后台响应中的使用 标签:tco package ror java 权限 comm ati 提示 mutable 原文地址:https://www.cnblogs.com/lishaojun/p/11074948.htmlimport 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
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);
@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());