Java枚举类型在后台响应中的使用
Posted lishaojun
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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
@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枚举类型在后台响应中的使用的主要内容,如果未能解决你的问题,请参考以下文章