zoukankan      html  css  js  c++  java
  • java返回结果集封装

    1、返回消息统一定义文件CodeMsg.java

    1. public class CodeMsg {  
    2.     private int retCode;  
    3.     private String message;  
    4.     // 按照模块定义CodeMsg  
    5.     // 通用异常  
    6.     public static CodeMsg SUCCESS = new CodeMsg(0,"success");  
    7.     public static CodeMsg SERVER_EXCEPTION = new CodeMsg(500100,"服务端异常");  
    8.     public static CodeMsg PARAMETER_ISNULL = new CodeMsg(500101,"输入参数为空");  
    9.     // 业务异常  
    10.     public static CodeMsg USER_NOT_EXSIST = new CodeMsg(500102,"用户不存在");   
    11.     public static CodeMsg ONLINE_USER_OVER = new CodeMsg(500103,"在线用户数超出允许登录的最大用户限制。");   
    12.     public static CodeMsg SESSION_NOT_EXSIST =  new CodeMsg(500104,"不存在离线session数据");  
    13.     public static CodeMsg NOT_FIND_DATA = new CodeMsg(500105,"查找不到对应数据");  
    14.       
    15.     private CodeMsg(int retCode, String message) {  
    16.         this.retCode = retCode;  
    17.         this.message = message;  
    18.     }  
    19.     public int getRetCode() {  
    20.         return retCode;  
    21.     }  
    22.     public String getMessage() {  
    23.         return message;  
    24.     }  
    25.     public void setMessage(String message) {  
    26.         this.message = message;  
    27.     }  
    28. }  

    2、返回结果集封装:Result.java

    1. public class Result<T> {  
    2.     private String message;  
    3.     private int retCode;  
    4.     private T data;  
    5.     private Result(T data) {  
    6.         this.retCode = 0;  
    7.         this.message = "成功";  
    8.         this.data = data;  
    9.     }  
    10.     private Result(CodeMsg cm) {  
    11.         if(cm == null){  
    12.             return;  
    13.         }  
    14.         this.retCode = cm.getRetCode();  
    15.         this.message = cm.getMessage();  
    16.     }  
    17.     /**  
    18.      * 成功时候的调用  
    19.      * @return  
    20.      */  
    21.     public static <T> Result<T> success(T data){  
    22.         return new Result<T>(data);  
    23.     }  
    24.     /**  
    25.      * 成功,不需要传入参数  
    26.      * @return  
    27.      */  
    28.     @SuppressWarnings("unchecked")  
    29.     public static <T> Result<T> success(){  
    30.         return (Result<T>) success("");  
    31.     }  
    32.     /**  
    33.      * 失败时候的调用  
    34.      * @return  
    35.      */  
    36.     public static <T> Result<T> error(CodeMsg cm){  
    37.         return new Result<T>(cm);  
    38.     }  
    39.     /**  
    40.      * 失败时候的调用,扩展消息参数  
    41.      * @param cm  
    42.      * @param msg  
    43.      * @return  
    44.      */  
    45.     public static <T> Result<T> error(CodeMsg cm,String msg){  
    46.         cm.setMessage(cm.getMessage()+"--"+msg);  
    47.         return new Result<T>(cm);  
    48.     }  
    49.     public T getData() {  
    50.         return data;  
    51.     }  
    52.     public String getMessage() {  
    53.         return message;  
    54.     }  
    55.     public int getRetCode() {  
    56.         return retCode;  
    57.     }  
    58. }  


    3、返回结果使用:

    1. Map<String, Object> dataMap = new HashMap<String, Object>();  
    2. dataMap.put("data", data);  
    3. dataMap.put("userid", userid);  
    4.   
    5.   
    6. result = Result.success(dataMap);// 成功,并返回数据和retCode和message  
    7.   
    8. // result = Result.success();// 成功,不返回数据,只返回retCode和message  
    9.   
    10. // result = Result.error(CodeMsg.SERVER_EXCEPTION);// 失败返回错误信息  
    11.   
    12. // result = Result.error(CodeMsg.SERVER_EXCEPTION,e.toString());// 失败返回错误+扩展错误信息  



    2018-05-15更新

    日常开发中,将系统的返回msg可以封装成枚举(Emun)类型来处理。
  • 相关阅读:
    币圈惊现门罗币挖矿新家族「罗生门」
    5步告诉你QQ音乐的完美音质是怎么来的,播放器的秘密都在这里
    【云+社区极客说】新一代大数据技术:构建PB级云端数仓实践
    Android P的APP适配总结,让你快人一步
    C++11用于计算函数对象返回类型的统一方法
    C++11用于元编程的类别属性
    C++11多态函数对象包装器
    C++11包装引用
    C++11能用智能指针
    C++正则表达式
  • 原文地址:https://www.cnblogs.com/jpfss/p/8602275.html
Copyright © 2011-2022 走看看