Java通用返回工具类Result

打印 上一主题 下一主题

主题 939|帖子 939|积分 2817

通用返回类Result

前言:Java项目搭建时,常常需要去封装一个通用型的Result工具类,下面就是我自己封装的常用的返回类,可以直接使用。(有部分Swagger注解,使用时可忽略
第一步、创建ReusltUtils工具类
  1. package com.code.walker.utils;
  2. import com.code.walker.constant.ResultCode;
  3. import io.swagger.annotations.ApiModel;
  4. import io.swagger.annotations.ApiModelProperty;
  5. import lombok.*;
  6. import lombok.experimental.Accessors;
  7. import java.io.Serializable;
  8. /**
  9. * @author ProsperousEnding-fhl
  10. * @create 2023-07-20-15:16
  11. */
  12. @Getter
  13. @Setter
  14. @NoArgsConstructor
  15. @AllArgsConstructor
  16. @Accessors(chain = true)
  17. @ApiModel(value = "响应信息体")
  18. public class  ResultUtils<T> implements Serializable {
  19.     /**
  20.      * 响应码
  21.      */
  22.     @Getter
  23.     @Setter
  24.     @ApiModelProperty(value = "响应标记:成功标记=0,失败1")
  25.     private Integer code;
  26.     /**
  27.      * 响应信息
  28.      */
  29.     @Getter
  30.     @Setter
  31.     @ApiModelProperty(value = "响应信息")
  32.     private String message;
  33.     /**
  34.      * 响应数据
  35.      */
  36.     @Getter
  37.     @Setter
  38.     @ApiModelProperty(value = "响应数据")
  39.     private T data;
  40.     @Getter
  41.     @Setter
  42.     @ApiModelProperty(value = "返回状态")
  43.     private boolean status;
  44.     private ResultUtils(ResultCode resultCode,T data,boolean status){
  45.         this.code = resultCode.getCode();
  46.         this.message = resultCode.getMessage();
  47.         this.data = data;
  48.         this.status=status;
  49.     }
  50.     /**
  51.      * 无数据成功返回
  52.      *
  53.      * @return
  54.      */
  55.     public static  <T>ResultUtils success(){
  56.         return new ResultUtils<T>(ResultCode.SUCCESS.getCode(),ResultCode.SUCCESS.getMessage(),null,true);
  57.     }
  58.     /**
  59.      * 带数据返回
  60.      */
  61.     public static <T> ResultUtils success(T data){
  62.         return new ResultUtils<T>(ResultCode.SUCCESS.getCode(),ResultCode.SUCCESS.getMessage(),data,true);
  63.     }
  64.     /**
  65.      * 失败
  66.      */
  67.     public static  <T>ResultUtils fail(){
  68.         return new ResultUtils<T>(ResultCode.FAIL.getCode(),ResultCode.FAIL.getMessage(), null,false);
  69.     }
  70.     /**
  71.      * 失败
  72.      */
  73.     public static <T> ResultUtils fail(T data){
  74.         return new ResultUtils<T>(ResultCode.FAIL.getCode(),ResultCode.FAIL.getMessage(), data,false);
  75.     }
  76.     @Override
  77.     public String toString() {
  78.         return "ResultUtils [code=" + code + ", message=" + message + ", data=" + data + "]";
  79.     }
  80. }
复制代码
第二步 创建常用的报错信息类(在日常开发中可不写,将ReusltUtils中的ResultCode的代码换成常量即可)

注:主要是为了美观以及修改方便,所以去单独的封装一个常量信息类
  1. /**
  2. * @author ProsperousEnding-fhl
  3. * @create 2023-07-20-15:46
  4. */
  5. @Getter
  6. public enum ResultCode {
  7.     /**
  8.      * 成功
  9.      */
  10.     SUCCESS(200, "成功"),
  11.     FAIL(1000, "失败"),
  12.     FAILED(400, "请求失败"),
  13.     NOT_FOUND(404, "未找到"),
  14.     SERVER_ERROR(500, " 服务器内部出错 "),
  15.     /**
  16.      * 错误参数
  17.      */
  18.     PARAM_IS_INVALID(1001, "参数无效"),
  19.     PARAM_IS_BLANK(1002, "参为空"),
  20.     PARAM_TYPE_ERROR(1003, "参数类型错误"),
  21.     PARAM_NOT_COMPLETE(1004, "参数缺失"),
  22.     /**
  23.      * 用户错误
  24.      */
  25.     USER_NOT_LOGIN_IN(2001, "用户未登录"),
  26.     USER_LOGIN_ERROR(2002, "账号不存在或者密码错误"),
  27.     USER_ACCOUNT_FORBIDDEN(2003, "账户被禁用"),
  28.     USER_NOT_EXISTS(2004, "用户不存在"),
  29.     USER_HAS_EXISTED(2005, "用户已存在");
  30.     /**
  31.      * 代码
  32.      */
  33.     private final Integer code;
  34.     /**
  35.      * 信息
  36.      */
  37.     private final String message;
  38.     private ResultCode(Integer code, String message) {
  39.         this.code = code;
  40.         this.message = message;
  41.     }
  42. }
复制代码
第三步、调用方法以及返回样式


  • 调用方式:
使用时可以直接使用ResultUtils.方法的方式
  1.    public Result getUser() {
  2.        User user1=new User();
  3.        user1.setName("codeTalker")
  4.         return Result.success(user1);
  5.    }
复制代码

  • 返回样式:
  1.    {
  2.        "code": 200,
  3.        "message": "成功",
  4.        "data":{
  5.            "name":"codeTalker"
  6.        }
  7.        "status": true
  8.    }
复制代码
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

反转基因福娃

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表