如何优雅地包装controller的返回结果,Result类封装

2022年10月25日09:15:48

import java.io.Serializable;

public class Result implements Serializable {
    private Integer code;
    private String message;
    private Object data;

    //构造函数
    public Result(Integer code, String message, Object data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    public Result(ResultCode resultCode) {
        this.code = resultCode.getCode();
        this.message = resultCode.getMessage();
    }

    public Result(ResultCode resultCode, Object data) {
        this.code = resultCode.getCode();
        this.message = resultCode.getMessage();
        this.data = data;
    }

    //静态方法
    public static Result success(){
        Result result = new Result(ResultCode.SUCCESS);
        return result;
    }

    public static Result success(Object data){
        Result result = new Result(ResultCode.SUCCESS, data);
        return result;
    }

    public static Result failure(ResultCode resultCode){
        Result result = new Result(resultCode);
        return result;
    }

    public static Result failure(ResultCode resultCode,Object data){
        Result result = new Result(resultCode, data);
        return result;
    }


    //Code和Msg的枚举类,一般情况情况下,code和message是一起的
    public enum ResultCode {

        SUCCESS(1, "成功"),
        PARAM_IS_INVALID(1001, "参数无效"),
        PARAM_IS_BLANK(1002, "参数为空"),
        USER_NOT_LOGGED_IN(2001, "用户未登录"),
        USER_LOGIN_ERROR(2002, "用户不存在或密码错误"),
        USER_NOT_EXISTED(2003, "用户不存在");

        private Integer code;
        private String message;

        public Integer getCode() {
            return code;
        }

        public String getMessage() {
            return message;
        }

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


}
  • 作者:Tsingfeng.
  • 原文链接:https://blog.csdn.net/weixin_59668801/article/details/126313563
    更新时间:2022年10月25日09:15:48 ,共 1295 字。