基于Java编写一个通用返回工具类Result

 更新时间:2023年07月20日 17:19:21   作者:ProsperousEnding  
Java项目搭建时,常常需要去封装一个通用型的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;
    }
}

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

调用方式:

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

public Result getUser() {
       User user1=new User();
       user1.setName("codeTalker")
        return Result.success(user1);
   }

返回样式:

{
       "code": 200,
       "message": "成功",
       "data":{
           "name":"codeTalker"
       }
       "status": true
   }

以上就是基于Java编写一个通用返回工具类Result的详细内容,更多关于Java通用返回工具类的资料请关注脚本之家其它相关文章!

相关文章

  • Java实现文件的归档和解档

    Java实现文件的归档和解档

    这篇文章主要为大家详细介绍了Java实现文件的归档和解档,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-09-09
  • 服务注册不上nacos问题排查及解决过程

    服务注册不上nacos问题排查及解决过程

    这篇文章主要介绍了服务注册不上nacos问题排查及解决过程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-10-10
  • SpringMVC拦截器配置及运行流程解析

    SpringMVC拦截器配置及运行流程解析

    这篇文章主要介绍了SpringMVC拦截器配置及运行流程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-06-06
  • redis.clients.jedis.exceptions.JedisMovedDataException异常解决

    redis.clients.jedis.exceptions.JedisMovedDataException异常解决

    redis.clients.jedis.exceptions.JedisMovedDataException 异常是在使用 Jedis 客户端与 Redis 集群进行交互时发生的,下面就来介绍一下解决方法,感兴趣的可以了解一下
    2024-05-05
  • 分享40个Java多线程问题小结

    分享40个Java多线程问题小结

    多个线程共存于同一JVM进程里面,所以共用相同的内存空间,较之多进程,多线程之间的通信更轻量级,本文给大家分享40个Java多线程问题小结 的相关资料,需要的朋友可以参考下
    2015-12-12
  • Java 中synchronize函数的实例详解

    Java 中synchronize函数的实例详解

    这篇文章主要介绍了Java 中synchronize函数的实例详解的相关资料,希望通过本文能帮助到大家理解使用synchronize函数的使用方法,需要的朋友可以参考下
    2017-09-09
  • SpringBoot整合HikariCP数据库连接池方式

    SpringBoot整合HikariCP数据库连接池方式

    这篇文章主要介绍了SpringBoot整合HikariCP数据库连接池方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-03-03
  • 基于Nacos实现动态线程池的设计与实践分享

    基于Nacos实现动态线程池的设计与实践分享

    在分布式系统架构中,线程池是资源调度的重要工具,传统固定参数的线程池在流量平稳的场景下表现良好,但面对现代互联网业务的潮汐流量特征时,往往会出现资源浪费或处理能力不足的问题,所以本文将介绍基于Nacos实现动态线程池的设计与实践,需要的朋友可以参考下
    2025-05-05
  • Java学习-打印1-1000以内的水仙花数代码实例

    Java学习-打印1-1000以内的水仙花数代码实例

    这篇文章主要介绍了Java打印1-1000以内的水仙花数,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 教大家使用java实现顶一下踩一下功能

    教大家使用java实现顶一下踩一下功能

    这篇文章主要教大家如何使用java实现顶一下踩一下功能,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-02-02

最新评论