方法一
import java.util.HashMap;
public class AjaxResult extends HashMap<String,Object> {
private static final String STATUS = "status";
private static final String MESSAGE = "message";
private static final String DATA = "data";
private AjaxResult(AjaxStatus ajaxStatus){
this.put(STATUS,ajaxStatus.getStatus());
this.put(MESSAGE,ajaxStatus.getMessage());
}
/**
* 操作成功的方法
*/
public static AjaxResult success(){
return new AjaxResult(AjaxStatus.OK);
}
/**
* 操作成功并且携带数据的方法
*/
public static AjaxResult success(Object data){
AjaxResult ajaxResult = new AjaxResult(AjaxStatus.OK);
ajaxResult.put(DATA,data);
return ajaxResult;
}
/**
* 操作失败的方法
*/
public static AjaxResult error(){
return new AjaxResult(AjaxStatus.ERROR);
}
/**
* 操作失败特定的返回方法
*/
public static AjaxResult error(AjaxStatus ajaxStatus){
return new AjaxResult(ajaxStatus);
}
}
方法二
import java.util.HashMap;
public class AxiosResult<T>{
// 响应状态码
private int status;
// 响应信息
private String message;
// 携带的数据
private T data;
/**
* 给返回的对象设置数据
* @param axiosStatus 数据枚举
* @param v 返回时携带的数据
* @param <V> 返回数据的类型
* @return 返回给前端的数据
*/
private static <V> AxiosResult<V> setData(AxiosStatus axiosStatus,V v){
AxiosResult<V> axiosResult = new AxiosResult<>();
axiosResult.setStatus(axiosStatus.getStatus());
axiosResult.setMessage(axiosStatus.getMessage());
axiosResult.setData(v);
return axiosResult;
}
/**
* 成功 不携带数据
* @return
*/
public static AxiosResult success(){
return setData(AxiosStatus.OK,null);
}
/**
* 成功 携带数据
* @param v 返回时携带的数据
* @param <V> 返回时携带的数据类型
* @return 返回的对象
*/
public static <V> AxiosResult<V> success(V v){
return setData(AxiosStatus.OK,v);
}
/**
* 成功 自定义状态 并携带数据
*/
public static <V> AxiosResult<V> success(AxiosStatus axiosStatus,V v){
return setData(axiosStatus,v);
}
/**
* 失败 不携带数据
*/
public static AxiosResult error(){
return setData(AxiosStatus.ERROR,null);
}
/**
* 失败 自定义状态 不携带数据
*/
public static <V> AxiosResult<V> error(AxiosStatus axiosStatus){
return setData(axiosStatus,null);
}
public int getStatus() {
return status;
}
public String getMessage() {
return message;
}
public T getData() {
return data;
}
public void setStatus(int status) {
this.status = status;
}
public void setMessage(String message) {
this.message = message;
}
public void setData(T data) {
this.data = data;
}
private AxiosResult(){}
}
枚举类
public enum AxiosStatus {
OK(20000,"操作成功"),
ERROR(50000,"操作失败")
;
private int status;
private String message;
AxiosStatus(int status, String message) {
this.status = status;
this.message = message;
}
public int getStatus() {
return status;
}
public String getMessage() {
return message;
}
}