实用的返回结果封装

使用示例

/**
* @Author: huangwenjun
* @Description:
* @Date: Created in 13:59 2018/3/28
**/
@RestController
@CrossOrigin
@RequestMapping("baofu")
public class ConfigDemoController { @Autowired
private BaoFooConfig baoFooConfig; @GetMapping("success")
public Result<String> success() {
return Result.success("success !");
} @GetMapping("bulid")
public Result<String> bulid() {
return Result.build(ResultEnum.WAIT);
} @GetMapping("error")
public Result<String> error() {
return Result.success("error !");
}
}

效果


{"code":"0000","msg":"成功","data":"success !"} {"code":"1111","msg":"正在处理结果","data":null} {"code":"9999","msg":"error !","data":null}

Result

public class Result<T> {

    /**
* 错误码
*/
private String code; /**
* 提示信息
*/
private String msg; /**
* 具体的内容
*/
private T data; /**
* 成功时候的调用
* @param <T>
* @return
*/
public static <T> Result<T> success(T data) {
return new Result<>(data);
} /**
* 根据返回的状态对象, 构建返回结果
* @param resultEnum
* @param <T>
* @return
*/
public static <T> Result<T> build(ResultEnum resultEnum) {
return new Result<>(resultEnum);
} /**
* 根据 code, 和 msg 构建返回结果
* @param code
* @param msg
* @param <T>
* @return
*/
public static <T> Result<T> build(String code, String msg) {
return new Result<T>(code, msg);
} /**
* 根据 code, 和 msg, 和 data 构建返回结果
* @param code
* @param msg
* @param <T>
* @return
*/
public static <T> Result<T> build(String code, String msg, T data) {
return new Result<T>(code, msg, data);
} /**
* 失败的调用
* @param codeMsg
* @param <T>
* @return
*/
public static <T> Result<T> error(String codeMsg) {
return new Result<>(codeMsg);
} /**
* 失败的调用 将返回结果传入
* @param data
* @param <T>
* @return
*/
public static <T> Result<T> error(T data) {
return new Result<>(ResultEnum.ERROR.getCode(), ResultEnum.ERROR.getMsg(), data);
} private Result(T data) {
this.code = ResultEnum.SUCCESS.getCode();
this.msg = ResultEnum.SUCCESS.getMsg();
this.data = data;
} private Result(String msg) {
this.code = ResultEnum.ERROR.getCode();
this.data = null;
this.msg = msg;
} private Result(ResultEnum resultEnum) {
this.code = resultEnum.getCode();
this.msg = resultEnum.getMsg();
} private Result(String code, String msg) {
this.code = code;
this.msg = msg;
} private Result(String code, String msg, T data) {
this.code = code;
this.msg = msg;
this.data = data;
}
}

ResultEnum

public enum ResultEnum {

    SUCCESS("0000", "成功"),
ERROR("9999", "失败"), WAIT("1111", "正在处理结果"); private String code; private String msg; ResultEnum(String code, String msg) {
this.code = code;
this.msg = msg;
} public String getCode() {
return code;
} public String getMsg() {
return msg;
}
}

最新文章

  1. Jq基础简介
  2. ZeroMQ接口函数之 :zmq_ipc – ZMQ本地进程间通信传输协议
  3. vim的常用命令
  4. 关于Android LayoutInflater的解释
  5. Ubuntu 取消sudo密码
  6. web开发性能优化---代码优化篇
  7. python操作mysql数据-执行语句返回值直接返回字典类型
  8. INTRODUCE OF REPRESENTATIVE CPG-CONTROLLED ROBOTS
  9. python_12 模块
  10. Mock2 moco框架的http协议get方法Mock的实现
  11. POJ 2481 Cows 【树状数组】
  12. 科普知识普及 - 桥接VS中继
  13. TypeError: while_loop() got an unexpected keyword argument &#39;maximum_iterations&#39;
  14. VS的一些实用快捷键及小技巧(不断更新)
  15. tomcat-在cmd窗口启动Tomcat
  16. 8.15jsp document 头部声明 区别
  17. jQuery on()方法绑定动态元素的点击事件无响应的解决办法
  18. 006——php字符串中的处理函数(五)
  19. ICLR 2014 International Conference on Learning Representations深度学习论文papers
  20. 三、Hadoop 的 API

热门文章

  1. python opencv —— io(帧、图像、视频的读取与保存)
  2. 宏的使用 extern
  3. C# 泛型特化
  4. js进阶 13-1 jquery动画中的显示隐藏函数有哪些
  5. Microsoft Bot Framework 链接至微信公共号
  6. 高级Java工程师必备 ----- 深入分析 Java IO (三)
  7. Yii 错误页面处理
  8. Win7长时间使用占用内存高问题记
  9. php protected 类型如何获取
  10. MHA 一主两从搭建-脚本VIP-自动切换