工具类之Controller层返回结果封装

本文介绍了一种用于系统返回结果的枚举类ResultCodeEnum的设计及其使用方式,并提供了一个通用的结果封装类ResultUtil,该类能够灵活地构建各种业务场景下的响应数据。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、枚举类ResultCodeEnum

所有返回编码和含义,后续可以自由扩展

/**
 * @program: dc2
 * @description: 返回结果编码与含义
 * @author: Mario
 * @create: 2019-07-22 16:21
 **/
public enum ResultCodeEnum {
    /**
     * 调用成功
     */
    SUCCESS(0, "成功"),

    /**
     * 调用失败
     */
    FAIL(-1, "失败");


    /**
     * 返回编码
     */
    private Integer code;

    /**
     * 编码对应的消息
     */
    private String msg;

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

    /**
     * 获取枚举类型的编码值
     */
    public Integer code() {
        return this.code;
    }

    /**
     * 获取枚举类型的编码含义
     */
    public String msg() {
        return this.msg;
    }

    /**
     * 根据枚举名称--获取枚举编码
     */
    public static Integer getCode(String name) {
        for (ResultCodeEnum resultCode : ResultCodeEnum.values()) {
            if (resultCode.name().equals(name)) {
                return resultCode.code;
            }
        }
        return null;
    }

/*    public static void main(String[] args) {
        System.out.println(ResultCodeEnum.FAIL.code());
        System.out.println(ResultCodeEnum.SUCCESS.msg());
        System.out.println(ResultCodeEnum.getCode("SUCCESS"));
    }*/
}

二、返回结果封装类

/**
 * @program: dc2
 * @description: 返回结果统一封装
 * @author: Mario
 * @create: 2019-07-22 16:21
 **/
@Getter  //这里没有set方法,不让别人通过set给属性赋值
public class ResultUtil<T> implements Serializable {
    private static final long serialVersionUID = 3436477890959388499L;
    
    /**
     * 返回操作码(默认为正常)
     */
    private Integer code = ResultCodeEnum.SUCCESS.code();

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

    /**
     * 返回正确消息信息
     */
    private String msg = "";

    /**
     * 返回错误的消息信息
     */
    private String error = "";

    public static ResultUtil success = new ResultUtil();
    public static ResultUtil fail = new ResultUtil().code(ResultCodeEnum.FAIL.code());

    // 构造方法
    public static ResultUtil build() {
        return new ResultUtil();
    }

    public static <T> ResultUtil<T> build(T data) {
        return new ResultUtil().data(data);
    }

    // 赋值方法
    public ResultUtil data(T data) {
        this.data = data;
        return this;
    }

    public ResultUtil code(Integer code) {
        this.code = code;
        return this;
    }

    public ResultUtil msg(String msg) {
        this.msg = msg;
        return this;
    }

    public ResultUtil error(String error) {
        this.error = error;
        return this;
    }

 /*   public ResultUtil<Xxx> getXxx(){
        Xxx xxx = new Xxx();
        return ResultUtil.build(xxx);
        // return ResultUtil.success.data(xxx).msg("获取成功");
        // return ResultUtil.fail.error("获取失败!");
        // return ResultUtil.fail.code(ResultCodeEnum.FAIL.code()).error("登录过期!");
        // return ResultUtil.fail.code(ResultCodeEnum.FAIL.code()).error(ResultCodeEnum.FAIL.msg());
    }*/
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值