Hello! 欢迎来到小浪资源网!


Spring Boot中静态方法返回CommonResult为空的原因是什么?


Spring Boot中静态方法返回CommonResult为空的原因是什么?

spring boot 以静态方法返回为空的原因

spring boot 应用程序中,使用控制器方法返回 commonresult 类型的对象时,返回结果可能出现为空的情况。这是由于 commonresult 中的 data 属性默认设置为私有访问。

为了解决这个问题,需要将 commonresult 中的 data 属性设置为公共访问权限,或者提供一个公共的 getter 方法来获取 data 值。

修改 commonresult 类

修改 commonresult 类如下:

public class commonresult<t> implements serializable {     public static integer code_success = 0;      private integer code;     private string message;     public t data; // data 的访问权限由 private 改为 public      public integer getcode() {         return code;     }      public string getmessage() {         return message;     }      public static <k> commonresult<k> success(k input_data) {         commonresult<k> result = new commonresult<>();         result.code = code_success;         result.data = input_data;         result.message = "";         return result;     } }

修改控制器方法

修改控制器方法返回类型,使用 commonresult 的公共 data 字段:

@getmapping("/get2") public commonresult<uservo> get2(@requestparam("id") integer id) {     uservo user = new uservo().setid(id).setusername(uuid.randomuuid().tostring());     // 返回结果     return commonresult.success(user).data; // 使用 commonresult 的公共 data 字段 }

通过这些修改,使用静态方法返回 commonresult 对象时即可正常返回 data 值:

{   "code": 0,   "message": "",   "data": {     "id": 3,     "username": "1e29a45d-6363-43b3-a08d-3989ea70d1ae"   } }

相关阅读