Java中响应结果工具类,可自定义响应码,内容,响应消息

创建响应状态码和说明枚举类

/**
* 响应状态码和说明
*/
public enum CodeEnum {
   SUCCESS(0, "成功!"),
   FAIL(1, "失败,未知错误!"),;

   /**
    * 响应状态码
    */
   private final int code;

   /**
    * 响应提示
    */
   private final String msg;

   CodeEnum(int code, String msg) {
       this.code = code;
       this.msg = msg;
  }

   public int getCode() {
       return code;
  }

   public String getMsg() {
       return msg;
  }
}

基本响应封装

/**
* 基本响应封装
*/
public class BaseResponse {

/**
* 响应码
*/
private int code;

/**
* 响应消息
*/
private String msg;

protected BaseResponse() {}

protected BaseResponse(CodeEnum code) {
  this.code = code.getCode();
  this.msg = code.getMsg();
  }

   public static BaseResponse out(CodeEnum code) {
  return new BaseResponse(code);
  }

public int getCode() {
return code;
}

public void setCode(int code) {
this.code = code;
}

public String getMsg() {
return msg;
}

public void setMsg(String msg) {
this.msg = msg;
}
}

响应数据结构封装

/**
* 响应数据结构封装
*/
public class ResponseData<T> extends BaseResponse {

private T data;

private ResponseData() {}

private ResponseData(CodeEnum code, T data) {
super(code);
this.data = data;
}

public static <T> ResponseData<T> out(CodeEnum code, T data) {
return new ResponseData<T>(code, data);
}

public T getData() {
return data;
}

public void setData(T data) {
this.data = data;
}

}

测试

public static void main(String[] args) {
   BaseResponse out = BaseResponse.out(CodeEnum.SUCCESS);
   System.out.println("基本响应封装:\n" + JSON.toJSONString(out));
   List<String> list = new LinkedList<>();
   list.add(UUID.randomUUID().toString());
   ResponseData<List<String>> data = ResponseData.out(CodeEnum.FAIL, list);
   System.out.println("响应数据结构封装:\n" + JSON.toJSONString(data));
}

打印结果: 基本响应封装: {"code":0,"msg":"成功!"} 响应数据结构封装: {"code":1,"data":["aac1d70a-1eaf-4d6a-8383-102ced0bdf29"],"msg":"失败,未知错误!"}

posted @ 2018-09-02 17:13  achnly  阅读(5318)  评论(0编辑  收藏  举报