请叫我滚去学习 2023-03-23 10:47 采纳率: 33.3%
浏览 30
已结题

Java返回构造器为空

接口中返回的参数全部为null

{
    "code": null,
    "message": null,
    "data": null,
    "status": null
}

实际上我的接口响应成功了
这是我的返回的构造器


    private String code;
    //错误的状态信息
    private String message;

    //数据
    private T data;
    private String description;
    private Boolean status;
    public static <T> Result<T> success(ErrorCodeEnum errorCodeEnum,T data,String message){
        return new Result<T>(errorCodeEnum.getCode(),errorCodeEnum.getDescription(),message,data,true);
    }

前后对比了发现只要我的返回参数带上数据就会出现这样的情况,但是重写了几遍还是没有解决

return Result.fail(ErrorCodeEnum.SYSTEM_ERROR_B0001);
//这种情况是可以返回枚举中的参数的
return Result.success(ErrorCodeEnum.SUCCESS, sysFlowrecords, s);
//这种情况就会出现上述的问题
  • 写回答

4条回答 默认 最新

  • 请叫我滚去学习 2023-03-23 15:21
    关注
    
    @NoArgsConstructor
    @AllArgsConstructor
    public class Result<T> implements Serializable {
        private static final long serialVersionUID = -614984979885014977L;
        //状态码
        private String code;
        //错误的状态信息
        private String message;
    
        //数据
        private T data;
        private String description;
        private Boolean status;
    
        private Result(String code, String description, String message, T data, boolean b) {
    
        }
    
        //get方法:获取状态码
        public String getCode() {
            return code;
        }
        public Boolean getStatus(){return status;}
        //get方法:获取错误状态信息
        public String getMessage() {
            return message;
        }
        //get方法:获取数据内容
        public T getData() {
            return data;
        }
        /**
         * 构造器(私有化),这里写了3个构造器。根据实际发开需要添加即可
         */
        private Result(String code,String message,T data,Boolean status){
            this.code=code;
            this.message=message;
            this.data=data;
            this.status=status;
        }
        private Result(String code,String message,Boolean status){
            this.code=code;
            this.message=message;
            this.status=status;
        }
        private Result(String message){
            this.message=message;
        }
    
        //下面就是根据需要返回不同参数格式的方法
        /**
         * 返回《状态码》《状态信息》《数据》
         * 状态码来自--->>枚举
         * 状态信息来自--->>开发人员
         * 数据来自--->>开发人员
         */
        public static <T> Result<T> success(ErrorCodeEnum errorCodeEnum){
            return new Result<T>(errorCodeEnum.getCode(),errorCodeEnum.getDescription(),true);
    
        }
    
    
        /**
         * 返回《状态码》《状态信息》《状态信息》
         * 状态码来自--->>枚举
         * 状态信息来自--->>开发人员
         */
        public static <T> Result<T> fail(ErrorCodeEnum errorCodeEnum,String message){
            return new Result<T>(errorCodeEnum.getCode(),errorCodeEnum.getDescription(),message,false);
        }
        public static <T> Result<T> fail(ErrorCodeEnum errorCodeEnum,T data,String message){
            return new Result<T>(errorCodeEnum.getCode(),errorCodeEnum.getDescription(),message,data,false);
        }
        private Result (String code,String description,String message,Boolean status){
            this.code=code;
            this.description=description;
            this.message=message;
            this.status=status;
        }
    
        /**
         * 返回《状态码》《状态信息》《数据》
         * 状态码来自--->>枚举
         * 状态信息来自--->>枚举
         * 数据来自--->>开发人员
         */
        public static <T> Result<T> success(ErrorCodeEnum errorCodeEnum,T data){
            return new Result<T>(errorCodeEnum.getCode(),errorCodeEnum.getDescription(),data,true);
        }
        public static <T> Result<T> success(ErrorCodeEnum errorCodeEnum,String message){
            return new Result<T>(errorCodeEnum.getCode(),errorCodeEnum.getDescription(),message,true);
        }
        //目前出问题的构造方法
        public static <T> Result<T> success(ErrorCodeEnum errorCodeEnum,T data,String message){
            return new Result<>(errorCodeEnum.getCode(), errorCodeEnum.getDescription(), message, data, true);
        }
        /**
         * 返回《状态码》《状态信息》《数据》
         * 状态码来自--->>枚举
         * 状态信息来自--->>枚举
         * 数据来自--->>开发人员
         */
        public static <T> Result<T> fail(ErrorCodeEnum errorCodeEnum){
            return new Result<>(errorCodeEnum.getCode(), errorCodeEnum.getDescription(), false);
        }
    
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

问题事件

  • 系统已结题 3月31日
  • 已采纳回答 3月23日
  • 请采纳用户回复 3月23日
  • 创建了问题 3月23日

悬赏问题

  • ¥15 smptlib使用465端口发送邮件失败
  • ¥200 总是报错,能帮助用python实现程序实现高斯正反算吗?有偿
  • ¥15 对于squad数据集的基于bert模型的微调
  • ¥15 为什么我运行这个网络会出现以下报错?CRNN神经网络
  • ¥20 steam下载游戏占用内存
  • ¥15 CST保存项目时失败
  • ¥15 树莓派5怎么用camera module 3啊
  • ¥20 java在应用程序里获取不到扬声器设备
  • ¥15 echarts动画效果的问题,请帮我添加一个动画。不要机器人回答。
  • ¥15 Attention is all you need 的代码运行