代码如下:
package tech.xueyao.common;
import tech.xueyao.contant.enums.ResponseStatus;
import java.io.Serializable;
publicclass BaseResponse implements Serializable {
private Integer code = 10000;
private String msg = "操作完成";
private Object data;
public Integer getCode() {
return code;
}
public void setCode(Integer code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public void setStatus(ResponseStatus status) {
this.code = status.code();
this.msg = status.msg();
}
public BaseResponse(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public BaseResponse(ResponseStatus status) {
this.code = status.code();
this.msg = status.msg();
}
public BaseResponse(Integer code, String msg,Object data) {
this.code = code;
this.msg = msg;
this.data=data;
}
public BaseResponse() {
}
}
以下是对这段 Java 代码的分析:
这段代码定义了一个名为 BaseResponse
的基础类,它是一个通用的响应类,用于封装接口返回的结果。
private Integer code = 10000;
private String msg = "操作完成";
private Object data;
code
:表示响应的状态码,默认为 10000
,。msg
:表示响应的消息,默认为 "操作完成",错误信息也放在这个变量中。data
:表示响应返回的数据,定义为 Object
,可以是任意类型的数据。public BaseResponse(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public BaseResponse(ResponseStatus status) {
this.code = status.code();
this.msg = status.msg();
}
public BaseResponse(Integer code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
public BaseResponse() {
}
BaseResponse
对象:BaseResponse(Integer code, String msg)
:通过状态码和消息创建对象。BaseResponse(ResponseStatus status)
:通过 ResponseStatus
枚举类创建对象。BaseResponse(Integer code, String msg, Object data)
:通过状态码、消息和数据创建对象。BaseResponse()
:无参构造函数,使用默认的状态码和消息。BaseResponse
类是一个通用的响应类,提高了代码的可读性。同时,使用 ResponseStatus
枚举类来管理响应状态。
ResponseStatus代码如下:
package tech.xueyao.contant.enums;
publicenum ResponseStatus {
SUCCESS(10000, "成功"),
INVALID_SIGNATURE(20002, "无效签名"),
SEND_SMS_MAXIMUM(20003, "短信发送次数达到上限"),
SEND_SMS_FAIL(20004,"短信发送失败"),
BAD_REQUEST(40000,"请求有误"),
BADPARAM(40001, "参数错误"),
UNAUTHORIZED(40401, "用户未身份认证"),
NO_PERMISSION(40403, "没有接口权限"),
NO_PERMISSION_DATE(40404, "没有接口数据权限"),
NOT_FOUND(40404,"您所访问的资源不存在"),
Method_NOT_ALLOWED(40405,"方法不被允许"),
EXCEPTION(50000, "业务处理失败,请稍后再试");
Integer code;
String msg;
ResponseStatus(Integer code, String msg) {
this.code = code;
this.msg = msg;
}
public Integer code() {
returnthis.code;
}
public String msg() {
returnthis.msg;
}
}
如果返回的结果涉及到分页,我们可以使用下面这个类:
package tech.xueyao.common;
import tech.xueyao.contant.enums.ResponseStatus;
publicclass PageResponse extends BaseResponse {
privateint pageIndex;//当前页数
privateint pageSize;//分页条数
privatelong count;//总条数
public PagedResponse() {
}
public PagedResponse(ResponseStatus responseStatus) {
super(responseStatus);
}
public int getPageIndex() {
return pageIndex;
}
public void setPageIndex(int pageIndex) {
this.pageIndex = pageIndex;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public long getCount() {
return count;
}
public void setCount(long count) {
this.count = count;
}
}