统一返回结果类有很多, 个人感觉这种好用, 记录一下, 为以后 copy 准备
package com.xxxx.pro.common;
import lombok.Data;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
@Data
public class R<T> {
private String message;
private Integer code;
private T data; //这里是返回结果数据
private Map<String,Object> map = new HashMap(); //这里是返回附加的数据
private R(){}
public static R ok(){ //如果只是单纯的返回一个 操作是否成功时用这个
R r = new R<>();
r.code = 200;
r.message = "success";
r.data = new ArrayList<>();
return r;
}
public static <T> R<T> ok(T object){ //如果返回的结果 要有数据的, 使用这个
R r = R.ok();
r.setData(object);
return r;
}
public static <T> R<T> error(){ //返回一个错误
R<T> r = new R<>();
r.code = 500;
r.message = "fail";
return r;
}
public R<T> add(String key,Object value){
this.map.put(key,value);
return this;
}
public R<T> message(String msg){
this.setMessage(msg);
return this;
}
public R<T> code(Integer code){
this.setCode(code);
return this;
}
}
当我们要使用的时候
return R.ok();
return R.error();
//如果要带上返回的数据
return R.ok(Object);
//如果还有其它的附加数据
return R.ok(Object).add(key,value);
//如果要修改返回 提示信息
return R.ok().message("自定义成功提示")
return R.error().message("自定义错误提示")
//如果要修改返回的 状态码
return R.ok().code(400);
return R.error().code(401)
//全部自定义
return R.ok(Object).message("成功了").code(2000).add("list",[a,b,c])