在做后端的开发的时候需要给前台返回一个结果集,结果集中包含状态码、返回信息和返回对象;
返回的结果集中会有常量的出现,所以我们先封装一个常量类,方便调用;
public class ResultConstant {
//返回状态码:200-》成功; 500-》失败
public final static int OK = 200;
public final static int ERROR = 500;
public final static int MAN_CODE = 0;
public final static int WOMEN_CODE = 1;
public final static String OK_MESSAGE = "操作成功";
public final static String ERROR_MESSAGE = "操作失败";
}
然后我们就要去封装返回集了
/**
* @className: Restult
* @description: 统一后台返回格式
* @create: 2021-08-7 21:08
**/
public class Result {
// 返回的状态码
private int code;
// 返回的信息提示
private String message;
// 返回的数据
private Object result;
private Result() {
}
private Result(int code, String message, Object result) {
this.code = code;
this.message = message;
this.result = result;
}
@Deprecated
public static Result resultError(boolean r){
if(r){
return ok();
}else {
return error();
}
}
public static Result result(boolean r){
if(r){
return ok();
}else {
return error();
}
}
public static Result ok(){
return ok(ResultConstant.OK_MESSAGE,null);
}
public static Result ok(Object result){
return ok(ResultConstant.OK_MESSAGE,result);
}
public static Result ok(String message, Object result){
return new Result(ResultConstant.OK,message,result);
}
public static Result error(){
return error(ResultConstant.ERROR_MESSAGE,null);
}
public static Result error(Object result){
return error(ResultConstant.ERROR_MESSAGE,result);
}
public static Result error(String message, Object result){
return new Result(ResultConstant.ERROR,message,result);
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return message;
}
public void setMsg(String message) {
this.message = message;
}
public Object getData() {
return result;
}
public void setData(Object result) {
this.result = result;
}
}
以其中成功的说明:
这些的实现用到了方法的重载:
1.当我们不给传递参数的时候,调用第一个方法,第一个方法重载第三个方法,返回的是我们封装的常量类中的常量数据;
2.当我们传递参数为result时,就是返回对象时,调用第二个方法重载第三个方法,即返回状态码和返回信息是默认的常量,返回的对象为我们的参数result;
3.当传递message和result时,直接调用第三个方法,返回的状态码、返回信息、返回对象都是我们传入的参数;
当然,失败的方法同样;