基于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-10-10
  • SpringBoot项目启动数据加载内存的三种方法

    SpringBoot项目启动数据加载内存的三种方法

    一般来说,SpringBoot工程环境配置放在properties文件中,启动的时候将工程中的properties/yaml文件的配置项加载到内存中,本文给大家介绍了SpringBoot项目启动数据加载内存中的三种方法,需要的朋友可以参考下
    2024-04-04
  • Springboot 整合 Dubbo/ZooKeeper 实现 SOA 案例解析

    Springboot 整合 Dubbo/ZooKeeper 实现 SOA 案例解析

    这篇文章主要介绍了Springboot 整合 Dubbo/ZooKeeper 详解 SOA 案例,需要的朋友可以参考下
    2017-11-11
  • JAVA判断空值方法原理解析

    JAVA判断空值方法原理解析

    这篇文章主要介绍了JAVA判断空值方法原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • 一文详解Java拦截器与过滤器的使用

    一文详解Java拦截器与过滤器的使用

    这篇文章主要为大家详细介绍了Java中拦截器与过滤器的使用与区别,文中的示例代码讲解详细,对我们学习有一定参考价值,需要的可以参考一下
    2022-04-04
  • java 分布式与集群的区别和联系

    java 分布式与集群的区别和联系

    本文主要介绍了java分布式与集群的区别和联系,具有很好的参考价值,下面跟着小编一起来看下吧
    2017-02-02
  • SpringBoot+Netty实现简单聊天室的示例代码

    SpringBoot+Netty实现简单聊天室的示例代码

    这篇文章主要介绍了如何利用SpringBoot Netty实现简单聊天室,文中的示例代码讲解详细,对我们学习SpringBoot有一定帮助,感兴趣的同学可以了解一下
    2022-02-02
  • Jmeter使用接口传递数据过程图解

    Jmeter使用接口传递数据过程图解

    这篇文章主要介绍了Jmeter使用接口传递数据过程图解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-05-05
  • Java源码解析之LinkedHashMap

    Java源码解析之LinkedHashMap

    LinkedHashMap是HashMap的子类,所以也具备HashMap的诸多特性.不同的是,LinkedHashMap还维护了一个双向链表,以保证通过Iterator遍历时顺序与插入顺序一致.除此之外,它还支持Access Order, ,需要的朋友可以参考下
    2021-05-05
  • SpringBoot中Json工具类的实现

    SpringBoot中Json工具类的实现

    本文介绍在Java项目中实现一个JSON工具类,支持对象与JSON字符串之间的转换,并提供依赖和代码示例便于直接应用,感兴趣的可以了解一下
    2024-10-10

最新评论