Java通用返回工具类Result

通用返回类Result

前言:Java项目搭建时,常常需要去封装一个通用型的Result工具类,下面就是我自己封装的常用的返回类,可以直接使用。(有部分Swagger注解,使用时可忽略

第一步、创建ReusltUtils工具类

package com.code.walker.utils;

import com.code.walker.constant.ResultCode;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.*;
import lombok.experimental.Accessors;

import java.io.Serializable;

/**
 * @author ProsperousEnding-fhl
 * @create 2023-07-20-15:16
 */
@Getter
@Setter
@NoArgsConstructor
@AllArgsConstructor
@Accessors(chain = true)
@ApiModel(value = "响应信息体")
public class  ResultUtils<T> implements Serializable {

    /**
     * 响应码
     */
    @Getter
    @Setter
    @ApiModelProperty(value = "响应标记:成功标记=0,失败1")
    private Integer code;

    /**
     * 响应信息
     */
    @Getter
    @Setter
    @ApiModelProperty(value = "响应信息")
    private String message;

    /**
     * 响应数据
     */
    @Getter
    @Setter
    @ApiModelProperty(value = "响应数据")
    private T data;


    @Getter
    @Setter
    @ApiModelProperty(value = "返回状态")
    private boolean status;


    private ResultUtils(ResultCode resultCode,T data,boolean status){
        this.code = resultCode.getCode();
        this.message = resultCode.getMessage();
        this.data = data;
        this.status=status;
    }

    /**
     * 无数据成功返回
     *
     * @return
     */
    public static  <T>ResultUtils success(){
        return new ResultUtils<T>(ResultCode.SUCCESS.getCode(),ResultCode.SUCCESS.getMessage(),null,true);
    }
    /**
     * 带数据返回
     */
    public static <T> ResultUtils success(T data){
        return new ResultUtils<T>(ResultCode.SUCCESS.getCode(),ResultCode.SUCCESS.getMessage(),data,true);
    }

    /**
     * 失败
     */
    public static  <T>ResultUtils fail(){
        return new ResultUtils<T>(ResultCode.FAIL.getCode(),ResultCode.FAIL.getMessage(), null,false);
    }
    /**
     * 失败
     */
    public static <T> ResultUtils fail(T data){
        return new ResultUtils<T>(ResultCode.FAIL.getCode(),ResultCode.FAIL.getMessage(), data,false);
    }


    @Override
    public String toString() {
        return "ResultUtils [code=" + code + ", message=" + message + ", data=" + data + "]";
    }
}

第二步 创建常用的报错信息类(在日常开发中可不写,将ReusltUtils中的ResultCode的代码换成常量即可)

注:主要是为了美观以及修改方便,所以去单独的封装一个常量信息类

/**
 * @author ProsperousEnding-fhl
 * @create 2023-07-20-15:46
 */

@Getter
public enum ResultCode {
    /**
     * 成功
     */
    SUCCESS(200, "成功"),
    FAIL(1000, "失败"),
    FAILED(400, "请求失败"),
    NOT_FOUND(404, "未找到"),
    SERVER_ERROR(500, " 服务器内部出错 "),
    /**
     * 错误参数
     */
    PARAM_IS_INVALID(1001, "参数无效"),
    PARAM_IS_BLANK(1002, "参为空"),
    PARAM_TYPE_ERROR(1003, "参数类型错误"),
    PARAM_NOT_COMPLETE(1004, "参数缺失"),
    /**
     * 用户错误
     */
    USER_NOT_LOGIN_IN(2001, "用户未登录"),
    USER_LOGIN_ERROR(2002, "账号不存在或者密码错误"),
    USER_ACCOUNT_FORBIDDEN(2003, "账户被禁用"),
    USER_NOT_EXISTS(2004, "用户不存在"),
    USER_HAS_EXISTED(2005, "用户已存在");

    /**
     * 代码
     */
    private final Integer code;
    /**
     * 信息
     */
    private final String message;

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

第三步、调用方法以及返回样式

  1. 调用方式:

使用时可以直接使用ResultUtils.方法的方式

   public Result getUser() {
       User user1=new User();
       user1.setName("codeTalker")
        return Result.success(user1);
   }
  1. 返回样式:
   {
       "code": 200,
       "message": "成功",
       "data":{
           "name":"codeTalker"
       }
       "status": true
   }
posted @   ProsperousEnding  阅读(1620)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· DeepSeek “源神”启动!「GitHub 热点速览」
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器
  1. 1 原来你也在这里 周笔畅
  2. 2 世间美好与你环环相扣 柏松
  3. 3 起风了 吴青峰
  4. 4 极恶都市 夏日入侵企划
  5. 5 所念皆星河 CMJ
  6. 6 所念皆星河-歌词版 房东的猫
  7. 7 卡农-钢琴版 dylanf
  8. 8 The truth that you leave Pianoboy高至豪
  9. 9 虹之间 米叔啊
虹之间 - 米叔啊
00:00 / 00:00
An audio error has occurred, player will skip forward in 2 seconds.

编曲:高佳

制作人:陈美威

和声编写:金贵晟

和声:金贵晟

配唱:陈美威

配唱协力:徐威

Vocal录音师:徐威

Vocal录音室:飞行者录音棚

和声录音师:徐威

和声录音室:飞行者录音棚

混音:陈宇轩/Jovi Chen

混音录音室:飞行者录音棚

OP:SAMP (Beijing) Co., Ltd索雅音乐版权代理(北京)有限公司

SP:SAMP (Beijing) Co., Ltd索雅音乐版权代理(北京)有限公司

想借天使的翅膀

抓住云端的彩虹

总在将要触碰时消散

错觉的地久天长

其实是一无所有

童话说雨后会有一道彩虹

却不曾说过它也会转瞬成空

想要把绚烂紧紧握在手中

忽然发现你已不见

站在无尽红尘中

仰望曾有你的苍穹

得到以后转眼又落空

究竟什么是永恒

都无法拥有完整

Oh my love

我看见希望闪耀在虹之间

光芒凝结于你我的那片天

不再追问你为何不能停留

微笑看见爱的浮现

雨后的天空重又出现彩虹

天使的恩惠亲吻着世间万众

不再追问你为何不能停留

放下了执念微笑现在

点击右上角即可分享
微信分享提示