统一封装类详解:Result
统一封装类详解:Result
统一封装类详解:Result在大多数项目中,为了统一返回格式和处理结果,我们经常会定义一个通用的结果封装类。上述代码展示了一个名为Result的泛型类,用于封装接口返回的结果。类结构该类具有以下属性:code(int):状态码,表示接口调用的执行情况;message(String):提示信息,对接口调用结果进行描述;data(T):泛型数据,表示接口调用返回的数据。同
统一封装类详解:Result
统一封装类详解:Result
在大多数项目中,为了统一返回格式和处理结果,我们经常会定义一个通用的结果封装类。上述代码展示了一个名为Result
的泛型类,用于封装接口返回的结果。
类结构
该类具有以下属性:
code
(int):状态码,表示接口调用的执行情况;message
(String):提示信息,对接口调用结果进行描述;data
(T):泛型数据,表示接口调用返回的数据。
同时,它提供了带参构造函数、无参构造函数以及三个相关的静态方法,并使用@Data
、@oArgsCtructor
和@AllArgsCtructor
注解简化开发。
构造函数
-
public Result(T data)
构造函数:- 用于响应成功执行的情况,默认的状态码为200(成功);
- 接收一个类型为
T
的参数data
,表示接口调用返回的数据。
-
public Result(T data, boolean success, String message)
构造函数:- 当
success
参数为true
时,表示执行成功,状态码为200(成功)、提示信息为"success"; - 当
success
参数为false
时,表示执行失败,可以自定义错误的状态码和提示信息; - 接收一个类型为
T
的参数data
,表示接口调用返回的数据; - 接收一个类型为
boolean
的参数success
,表示执行的成功与否; - 接收一个类型为
String
的参数message
,作为失败时的提示信息。
- 当
-
public Result(int code, String message)
构造函数:- 用于自定义状态码和提示信息的情况,例如特定的错误场景;
- 接收一个类型为
int
的参数code
,表示自定义的状态码; - 接收一个类型为
String
的参数message
,表示接口调用结果的描述信息。
静态方法
该封装类还提供了两个静态方法:
-
public static <T> Result<T> fail(String message)
:- 返回一个执行失败的结果对象;
- 接收一个类型为
String
的参数message
,表示失败时的提示信息。
-
public static <T> Result<T> fail(int code, String message)
:- 返回一个执行失败的结果对象,并可以自定义状态码和提示信息;
- 接收一个类型为
int
的参数code
,表示自定义的状态码; - 接收一个类型为
String
的参数message
,表示接口调用结果的描述信息。
完整代码
代码语言:javascript代码运行次数:0运行复制@Data
@oArgsCtructor
@AllArgsCtructor
public class Result<T> {
private int code;
private String message;
private T data;
public Result(T data) {
= 200;
= "success";
this.data = data;
}
public Result(T data, boolean success, String message) {
if (success) {
= 200;
= "success";
} else {
= 500;
= message;
}
this.data = data;
}
public Result(int code, String message) {
= code;
= message;
this.data = null;
}
public static <T> Result<T> success(T data) {
return new Result<>(data);
}
public static <T> Result<T> fail(String message) {
return new Result<>(500, message);
}
public static <T> Result<T> fail(int code, String message) {
return new Result<>(code, message);
}
}
使用示例
以下是一些使用示例,展示了如何使用Result
封装类来处理接口返回结果:
@GetMapping("/user/{id}")
public Result<User> getUserById(@PathVariable int id) {
User user = userService.getUserById(id);
if (user == null) {
return Result.fail("User not found");
}
return new Result<>(user);
}
@PostMapping("/login")
public Result<String> login(@RequestBody LoginRequest request) {
boolean isValid = userService.authenticate(request.getUsername(), request.getPassword());
if (isValid) {
// 返回登录成功的结果
return new Result<>("Login successful");
} else {
// 返回登录失败的结果,并自定义错误状态码和提示信息
return Result.fail(401, "Invalid username or password");
}
}
你可以根据项目需求,在Result
封装类中加入更多的方法和功能,以满足特定的业务需求。使用该类可以统一接口返回的数据格式和处理逻辑,提高代码的可读性和维护性,同时减少重复劳动。
#感谢您对电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格的认可,转载请说明来源于"电脑配置推荐网 - 最新i3 i5 i7组装电脑配置单推荐报价格
上传时间: 2025-07-19 18:31:30
上一篇:Swagger使用教程
推荐阅读
留言与评论(共有 6 条评论) |
本站网友 徐明天 | 13分钟前 发表 |
可以自定义错误的状态码和提示信息;接收一个类型为T的参数data | |
本站网友 海口市租房 | 6分钟前 发表 |
表示执行的成功与否;接收一个类型为String的参数message | |
本站网友 厨房和卫生间装修图 | 6分钟前 发表 |
message); } public static <T> Result<T> fail(int code | |
本站网友 块钱 | 18分钟前 发表 |
String message) { if (success) { = 200; = "success"; } else { = 500; = message; } this.data = data; } public Result(int code | |
本站网友 什么是溢价 | 12分钟前 发表 |
提高代码的可读性和维护性 |