首页 > 编程语言 >java返回的结果集更加会规范化

java返回的结果集更加会规范化

时间:2024-06-20 17:43:22浏览次数:21  
标签:返回 code java ResultsCode Result 规范化 return public

介绍

写三个文件ResultsCode.javaResponseData.javaResult.java,使用泛型让java项目中返回结果集,能够提高代码的可读性、可维护性和可扩展性

代码

ResultsCode.java

package com.rds.study.pojo;

public enum ResultsCode {
    SUCCESS(200, "操作成功"),
    ERROR(500, "服务器异常"),
    UNAUTHORIZED(401, "未认证(签名错误)"),
    NOT_FOUNT(404, "接口不存在");

    public int code;
    public String message;

    ResultsCode(int code, String message) {
        this.code = code;
        this.message = message;
    }
}

ResponseData.java

package com.rds.study.pojo;

public class ResponseData {
    public static <T> Result<T> success(T info) {
        return new Result<T>()
                .setCode(ResultsCode.SUCCESS.code)
                .setMsg(ResultsCode.SUCCESS.message)
                .setInfo(info);
    }

    public static Result success() {
        return new Result();
    }

    public static Result error() {
        return error(ResultsCode.ERROR.message); // 输出定义好的errormessage
    }

    public static Result error(String message) { // 输出自己想输出的errormessage
        return new Result()
                .setCode(ResultsCode.ERROR)
                .setMsg(message);
    }
}

Result.java

package com.rds.study.pojo;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;

import java.io.Serializable;
import java.util.HashMap;
import java.util.Map;

@ApiModel
public class Result<T> implements Serializable {
    private static final long serialVersionUID = 1L;
    private final Map<String, Object> map = new HashMap<>();

    @ApiModelProperty(value = "状态码")
    public int code; // 状态码
    @ApiModelProperty(value = "信息")
    private String msg; // 信息
    @ApiModelProperty(value = "对象")
    private T info; // 对象

    public Result(){
        this.code = ResultsCode.SUCCESS.code;
        this.msg = ResultsCode.SUCCESS.message;
    }

    public int getCode() {
        return code;
    }

    public Result<T> setCode(int code) {
        this.code = code;
        return this;
    }

    public Result<T> setCode(ResultsCode resultsCode) {
        this.code = resultsCode.code;
        return this;
    }

    public String getMsg() {
        return msg;
    }

    public Result<T> setMsg(String msg) {
        this.msg = msg;
        return this;
    }

    public Result<T> setMsg(ResultsCode resultsCode) {
        this.msg = resultsCode.message;
        return this;
    }


    public T getInfo() {
        return info;
    }

    public Result<T> setInfo(T info) {
        this.info = info;
        return this;
    }

    public Result<T> putDataValue(String key, Object value) {
        map.put(key, value);
        this.info = (T) map;
        return this;
    }

    @Override
    public String toString() {
        return "{" +
                "code = " +
                " , msg = " +
                " , info = " +
                info +
                "}";
    }
}

这样controller里方法返回成功后,直接return ResponseData.success(T)即可

标签:返回,code,java,ResultsCode,Result,规范化,return,public
From: https://www.cnblogs.com/rdisheng/p/18259159

相关文章

  • 【异常】nested exception is java.lang.NoClassDefFoundError: redis/clients/jedis/
    原因是版本冲突。以下我原本使用的版本信息<!--SpringBootRedis依赖--><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId><version>2.1.8.RELEASE</version><......
  • 高级前端开发需要知道的 25 个 JavaScript 单行代码
    1.不使用临时变量来交换变量的值例如我们想要将 a 于 b 的值交换leta=1,b=2;//交换值[a,b]=[b,a];//结果:a=2,b=1这行代码使用数组解构赋值的方式来交换两个变量的值,无需定义新的临时变量。这个巧妙的技巧可让代码看起来更简洁明了。语法[a,b......
  • 1-Java预备
    Java三大版本JavaSE:标准版(桌面程序,控制台开发....)JavaME:嵌入式开发(手机,小家电...)这个已经死掉了JavaEE:E企业级开发(web端,服务器开发...)JDKJREJVMJDK:JavaDevelopmentKit(Java开发者工具包含JRE,JVM)JRE:JavaRuntimeEnvironment(运行环境)JVM:JAVAVirtualMachine(虚拟机)J......
  • java基于SpringBoot+Vue的失踪人员信息发布与管理系统(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示项目运行截图技术框架后端采用SpringBoot框架前端框架Vue可行性分析系统测试系统测试的目的系统功能测试数据库表设计代码参考数据库脚本为什么选择我?获取源码前言......
  • Java学习 (四) 面向对象--类与方法
    关于面向对象的知识点1、java类以及类成员      属性      方法      构造器      代码块      内部类2、面向对象特征      封装      继承      多态3、 其他关键字使用    this\super\p......
  • java @TableField(exist = false) 和@TableField(select = false) 的区别
    @TableField(exist=false)和@TableField(select=false)都是MyBatis-Plus框架中用于标注实体类字段与数据库表字段映射关系的注解,但它们的作用有所不同:1.@TableField(exist=false)这个注解表示该字段在数据库表中不存在。当使用MyBatis-Plus的自动注入SQL语句功能......
  • JavaScript中 Map与reduce的应用
    1.Map:映射新世界Map构造函数创建一个新Map对象,它允许你以键值对的形式存储数据,提供了一种更加灵活的数据结构。与传统的对象相比,Map允许任何值(包括对象)作为键,而且具有更好的性能表现。应用场景:数据转换需要将数组其中每个元素通过某种规则转换为新值时,Map方法就显得尤为......
  • java insert数组到postgres数据库
    数组格式在数据库中并不是常用操作,比较常用的是字符串存储后,使用时再进行数据加工.这里记录下直接操作postgresinsert数组的数据操作.表结构CREATETABLEschema.table( report_rowsjsonNULL, series_varcharNULL)实际存在两种数组结构:1字符串数组2json数组.js......
  • 【AOP问题处理】:AopContext.currentProxy()方法异常处理:java.lang.IllegalStateExcept
    原因是代理对象内部方法的调用不会触发AOP代理。先看代码:自定义了一个注解:importjava.lang.annotation.ElementType;importjava.lang.annotation.Retention;importjava.lang.annotation.RetentionPolicy;importjava.lang.annotation.Target;//使用元注解......
  • 一站式统一返回值封装、异常处理、异常错误码解决方案—最强的Sping Boot接口优雅响应
    1.前言统一返回值封装、统一异常处理和异常错误码体系的意义在于提高代码的可维护性和可读性,使得代码更加健壮和稳定。统一返回值封装可以避免每一个接口都需要手工拼装响应报文;统一异常处理可以将异常处理的逻辑集中到一个地方,避免代码中出现大量的try-catch语句,降低了代码的......