0
点赞
收藏
分享

微信扫一扫

Java公共类设计 - 返回类

花明 2022-01-10 阅读 74

一. 结构

结构设计为3个Java类:
一个为返回状态码的常量类(ECode),一个为公共返回类(BaseResult),一个为返回状态码的枚举类(ResultCode)

二. 具体代码

(1)返回状态码的常量类(ECode)

package com.blog.base.global;

/**
 * 返回状态码
 *
 * @author admin
 * @create 2022/1/10
 */
public class ECode {

    /**
     * 操作成功
     */
    public static final Integer OK = 200;

    /**
     * 操作失败
     */
    public static final Integer FAIL = 500;

    /**
     * 未知错误
     */
    public static final Integer ERROR = 502;

    /**
     * 未通过token验证
     */
    public static final Integer UNAUTHORIZED = 401;

    /**
     * 无操作权限
     */
    public static final Integer NO_OPERATION_AUTHORITY = 402;

    /**
     * 服务器出现异常
     */
    public static final Integer SERVER_ERROR = 500;

    /**
     * 请求次数过于频繁
     */
    public static final Integer REQUEST_OVER_LIMIT = 502;
    
}

(2)公共返回类(BaseResult)

package com.blog.base.result;

import com.blog.base.global.ECode;

/**
 * 公共返回类
 *
 * @author admin
 * @create 2022/1/8
 */
public class BaseResult<T> {

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

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

    /**
     * 数据
     */
    private T data;

    public Integer getCode() {
        return code;
    }

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

    public String getMessage() {
        return message;
    }

    public void setMessage(String message) {
        this.message = message;
    }

    public T getData() {
        return data;
    }

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

    public BaseResult() {
    }

    public BaseResult(Integer code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    public BaseResult(Integer code, String message) {
        this.code = code;
        this.message = message;
    }

    public BaseResult(ResultCode resultCode, T data) {
        this.code = resultCode.getCode();
        this.message = resultCode.getMsg();
        this.data = data;
    }

    /**
     * 返回成功
     * @param message 信息
     * @return 公共返回类
     */
    public static <T> BaseResult<T> ok(String message){
        return new BaseResult<>(ECode.OK, message);
    }

    /**
     * 返回成功
     * @param <T> 数据
     * @return 公共返回类
     */
    public static <T> BaseResult<T> ok(T data){
        return new BaseResult<>(ResultCode.OK, data);
    }

    /**
     * 返回成功
     * @param message 信息
     * @param <T> 数据
     * @return 公共返回类
     */
    public static <T> BaseResult<T> ok(String message, T data){
        return new BaseResult<>(ECode.OK, message, data);
    }

    /**
     * 返回失败
     * @param message 信息
     * @return 公共返回类
     */
    public static <T> BaseResult<T> fail(String message){
        return new BaseResult<>(ECode.FAIL, message);
    }

    /**
     * 返回失败
     * @param <T> 数据
     * @return 公共返回类
     */
    public static <T> BaseResult<T> fail(T data){
        return new BaseResult<>(ResultCode.FAIL, data);
    }

    /**
     * 返回失败
     * @param message 信息
     * @param <T> 数据
     * @return 公共返回类
     */
    public static <T> BaseResult<T> fail(String message, T data){
        return new BaseResult<>(ECode.FAIL, message, data);
    }
    
}

(3)返回状态码的枚举类(ResultCode)

package com.blog.base.result;


/**
 * 响应码枚举
 *
 * @author admin
 * @create 2022/1/10
 */
public enum ResultCode {

    /**
     * 规范响应体中的响应码和响应信息
     */
    OK(200, "操作成功"),

    FAIL(500, "操作失败"),

    ERROR(502, "未知错误");

    private Integer code;

    private String msg;

    public Integer getCode() {
        return code;
    }

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

    public String getMsg() {
        return msg;
    }

    public void setMsg(String msg) {
        this.msg = msg;
    }

    ResultCode(Integer code, String msg) {
        this.code = code;
        this.msg = msg;
    }
    
}

举报

相关推荐

0 条评论