【JAVA】JAVA接口公共返回体ResponseData封装

一、JAVA接口公共返回体ResponseData封装,使用泛型的经典 例子

public class ResponseData<T> implements Serializable {

/**

*

*/

private static final long serialVersionUID = 7098362967623367826L;

/**

* 响应状态码

*/

private Integer code;

/**

* 响应信息

*/

private String message;

/**

* 响应对象

*/

private T data;

/** 是否加密返回参数*/

private boolean encrypt;

public Integer getCode() {

return code;

}

public void setCode(Integer code) {

this.code = code;

}

public String getMessage() {

return message;

}

public void setMessage(String message) {

if(getCode().toString().startsWith("40") || getCode().toString().startsWith("50")) {

this.message = "内部程序暂时出小差了";

}else {

this.message = message;

}

}

public T getData() {

return data;

}

public void setData(T data) {

this.data = data;

}

public static <T> ResponseData<T> success() {

return success(ResponseCode.SUCCESS);

}

public static <T> ResponseData<T> success(ResponseCode code) {

return success(code, null);

}

public static <T> ResponseData<T> success(T object) {

return success(ResponseCode.SUCCESS, object);

}

public static <T> ResponseData<T> success(ResponseCode code, T object) {

return success(code.getCode(), code.getMessage(), object);

}

public static <T> ResponseData<T> success(Integer code, String message, T data) {

ResponseData<T> response = new ResponseData<>();

response.setCode(code);

response.setMessage(message);

response.setData(data);

return response;

}

public static <T> ResponseData<T> error() {

return error(ResponseCode.FAILED);

}

public static <T> ResponseData<T> error(ResponseCode code) {

return error(code, null);

}

public static <T> ResponseData<T> error(String message) {

return error(ResponseCode.FAILED.getCode(), message, null);

}

public static <T> ResponseData<T> error(Integer code, String message) {

return error(code, message, null);

}

public static <T> ResponseData<T> error(ResponseCode code, T data) {

return error(code.getCode(), code.getMessage(), data);

}

public static <T> ResponseData<T> error(Integer code, String message, T data) {

ResponseData<T> response = new ResponseData<>();

response.setCode(code);

response.setMessage(message);

response.setData(data);

return response;

}

public boolean isEncrypt() {

return encrypt;

}

public void setEncrypt(boolean encrypt) {

this.encrypt = encrypt;

}

}

java 复制代码
public class ResponseData<T> implements Serializable {

    /**
	 * 
	 */
	private static final long serialVersionUID = 7098362967623367826L;

	/**
     * 响应状态码
     */
    private Integer code;

    /**
     * 响应信息
     */
    private String message;

    /**
     * 响应对象
     */
    private T data;

    /** 是否加密返回参数*/
    private boolean encrypt;

    public Integer getCode() {
        return code;
    }

    public void setCode(Integer code) {
        this.code = code;
    }

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
     
    	 if(getCode().toString().startsWith("40") ||  getCode().toString().startsWith("50")) {
    		 this.message = "内部程序暂时出小差了"; 
    	 }else {
    		 this.message = message; 
    	 }
    	
       
    }


    public T getData() {
        return data;
    }

    public void setData(T data) {
        this.data = data;
    }

    public static <T> ResponseData<T> success() {
        return success(ResponseCode.SUCCESS);
    }

    public static <T> ResponseData<T> success(ResponseCode code) {
        return success(code, null);
    }

    public static <T> ResponseData<T> success(T object) {
        return success(ResponseCode.SUCCESS, object);
    }

    public static <T> ResponseData<T> success(ResponseCode code, T object) {
        return success(code.getCode(), code.getMessage(), object);
    }

    public static <T> ResponseData<T> success(Integer code, String message, T data) {
        ResponseData<T> response = new ResponseData<>();
        response.setCode(code);
        response.setMessage(message);
        response.setData(data);
        return response;
    }

    public static <T> ResponseData<T> error() {
        return error(ResponseCode.FAILED);
    }

    public static <T> ResponseData<T> error(ResponseCode code) {
        return error(code, null);
    }

    public static <T> ResponseData<T> error(String message) {
        return error(ResponseCode.FAILED.getCode(), message, null);
    }

    public static <T> ResponseData<T> error(Integer code, String message) {
        return error(code, message, null);
    }

    public static <T> ResponseData<T> error(ResponseCode code, T data) {
        return error(code.getCode(), code.getMessage(), data);
    }

    public static <T> ResponseData<T> error(Integer code, String message, T data) {
        ResponseData<T> response = new ResponseData<>();
        response.setCode(code);
        response.setMessage(message);
        response.setData(data);
        return response;
    }


    public boolean isEncrypt() {
        return encrypt;
    }

    public void setEncrypt(boolean encrypt) {
        this.encrypt = encrypt;
    }
}

二、返回状态码封装ResponseCode,枚举类型

public enum ResponseCode {

/* 公共状态码 */

SUCCESS(200, "成功"),

FAILED(400, "失败"),

UNAUTHORIZED(401, "签名错误"),

NOT_FOUND(404, "此接口不存在"),

INTERNAL_SERVER_ERROR(500, "系统繁忙,请稍后再试"),

/* 参数错误:10001-19999 */

PARAM_IS_INVALID(10001, "参数无效"),

PARAM_IS_BLANK(10002, "参数为空"),

PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"),

PARAM_NOT_COMPLETE(10004, "参数缺失"),

/* 用户错误:20001-29999*/

USER_NOT_LOGGED_IN(20001, "用户未登录"),

USER_LOGIN_ERROR(20002, "账号不存在或密码错误"),

USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"),

USER_NOT_EXIST(20004, "用户不存在"),

USER_HAS_EXISTED(20005, "用户已存在"),

LOGIN_CREDENTIAL_EXISTED(20006, "凭证已存在"),

//微信授权 错误码

WEIXIN_ENCRYPT_ERROR(30001,"企业微信授权解密失败"),

/*权限相关:40001-49999 */

NO_PERMISS(40001,"无权限访问"),

IS_LIMIT_ACC(40002,"访问过于频繁限制访问"),

/* 业务错误:50001-59999 */

WX_QRCODE_NULL(50001,"微信二维码获取内容不可用"),

/* 业务错误:60001-69999 */

XSS_CODE_ERROR(60001,"存在xss 恶意攻击脚本"),

PASS_REPEAT_ERROR(60002,"密码 不能与 前三次相同,请更换新密码");

private Integer code;

private String message;

ResponseCode(int code, String message) {

this.code = code;

this.message = message;

}

public int getCode() {

return code;

}

public String getMessage() {

return message;

}

}

java 复制代码
public enum ResponseCode {

    /* 公共状态码 */
    SUCCESS(200, "成功"),
    FAILED(400, "失败"),
    UNAUTHORIZED(401, "签名错误"),
    NOT_FOUND(404, "此接口不存在"),
    INTERNAL_SERVER_ERROR(500, "系统繁忙,请稍后再试"),

    /* 参数错误:10001-19999 */
    PARAM_IS_INVALID(10001, "参数无效"),
    PARAM_IS_BLANK(10002, "参数为空"),
    PARAM_TYPE_BIND_ERROR(10003, "参数类型错误"),
    PARAM_NOT_COMPLETE(10004, "参数缺失"),

    /* 用户错误:20001-29999*/
    USER_NOT_LOGGED_IN(20001, "用户未登录"),
    USER_LOGIN_ERROR(20002, "账号不存在或密码错误"),
    USER_ACCOUNT_FORBIDDEN(20003, "账号已被禁用"),
    USER_NOT_EXIST(20004, "用户不存在"),
    USER_HAS_EXISTED(20005, "用户已存在"),
    LOGIN_CREDENTIAL_EXISTED(20006, "凭证已存在"),

    //微信授权 错误码
    WEIXIN_ENCRYPT_ERROR(30001,"企业微信授权解密失败"),
    
	
	/*权限相关:40001-49999 */
	NO_PERMISS(40001,"无权限访问"),
	IS_LIMIT_ACC(40002,"访问过于频繁限制访问"),

    /* 业务错误:50001-59999 */
	WX_QRCODE_NULL(50001,"微信二维码获取内容不可用"),

    /* 业务错误:60001-69999 */
    XSS_CODE_ERROR(60001,"存在xss 恶意攻击脚本"),
	
	PASS_REPEAT_ERROR(60002,"密码 不能与 前三次相同,请更换新密码");
	

    private Integer code;

    private String message;

    ResponseCode(int code, String message) {
        this.code = code;
        this.message = message;
    }

    public int getCode() {
        return code;
    }

    public String getMessage() {
        return message;
    }
}
相关推荐
GIOTTO情7 分钟前
Infoseek危机公关全链路技术解析:基于近期热点舆情的落地实践
java
includei8 分钟前
【JavaScript】华为机试_HJ20_密码验证合格程序
开发语言·javascript·华为
肖恭伟16 分钟前
Cursor Superpowers 零基础开发 Qt 界面
开发语言·qt
liuyao_xianhui22 分钟前
优选算法_分治_快速排序_归并排序_C++
开发语言·数据结构·c++·算法·leetcode·排序算法·动态规划
我是人✓28 分钟前
从零入门 Servlet:JavaWeb 核心组件的实操与理解
java·servlet
lay_liu34 分钟前
Spring Boot 自动配置
java·spring boot·后端
qq_2837200536 分钟前
Qt QML 中为 CheckBox 设置鸿蒙字体(HarmonyOS Sans)——适配 Qt 5.6.x 与 Qt 5.12+
开发语言·qt·harmonyos
未知鱼41 分钟前
Python安全开发之简易目录扫描器(含详细注释)
开发语言·python·安全
殷紫川1 小时前
线上故障零扩散:全链路监控、智能告警与应急响应 SOP 完整落地指南
java·架构·监控
前端小雪的博客.1 小时前
Java的面向对象:封装详解(0基础入门版)
java·java入门·java面向对象·封装详解·java封装·0基础学java·getter和setter