我的技术学习物语果然有问题
(最后更新 )

结果类封装

记录一下项目中常用的返回信息的封装类。

首先要封装一个响应的枚举,将一些常见的错误写入,一般状态码需要与前端一起制定,以便前端提示错误信息以及发生错误的处理逻辑。

package com.yww.demo.util;

/**
 * 结果状态码枚举
 *
 * @author yww
 */
public enum ResultCode {

    /**
     * 成功
     */
    SUCCESS(200, "成功"),
    /**
     * 服务器错误
     */
    FAILED(500, "服务器发生错误");

    private Integer status;
    private String message;

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

    public Integer getStatus() {
        return this.status;
    }

    public String getMessage() {
        return this.message;
    }

}

然后是数据返回的封装类。

package com.yww.demo.util;

import lombok.Data;

/**
 * @ClassName Result
 * @Descriprtion 结果类封装
 * @Author yww
 * @Date 2021/5/21 23:22
 **/
@Data
public class Result<T> {

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

    /**
     * 返回内容
     */
    private String message;

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

    /**
     * 私有化无参构造函数
     */
    private Result() {}

    /**
     * 全参构造函数
     *
     * @param code    状态码
     * @param message 返回内容
     * @param data    返回数据
     */
    public Result(Integer code, String message, T data) {
        this.code = code;
        this.message = message;
        this.data = data;
    }

    /**
     * 返回一个响应成功的信息,不带数据
     */
    public static <T> Result<T> success() {
        return new Result<>(ResultCode.SUCCESS.getStatus(), ResultCode.SUCCESS.getMessage(), null);
    }

    /**
     * 返回一个响应成功的信息,带数据
     *
     * @param data    返回数据
     */
    public static <T> Result<T> success(T data) {
        return new Result<>(ResultCode.SUCCESS.getStatus(), ResultCode.SUCCESS.getMessage(), data);
    }

    /**
     *  返回一个响应错误的信息
     */
    public static <T> Result<T> failure() {
        return new Result<>(ResultCode.FAILED.getStatus(), ResultCode.FAILED.getMessage(),null);
    }

    /**
     *  返回一个响应错误的信息,可以自定义错误信息
     *  @param message   返回的错误信息内容
     */
    public static <T> Result<T> failure(String message) {
        return new Result<>(ResultCode.FAILED.getStatus(), message,null);
    }

    /**
     *  根据结果状态码,返回一个响应错误的信息
     *  @param resultCode  状态码
     */
    public static <T> Result<T> failure(ResultCode resultCode) {
        return new Result<>(resultCode.getStatus(), resultCode.getMessage(),null);
    }

}