開發中可能返回各種各樣的值, 如果我們以json格式作為返回值的格式時, 將返回值統一后便于開發。
1. 統一一個返回值為Result, Result繼承hashMap
2. Result裝填三個值, err_no:錯誤號, 0表示調用成功,前臺可根據該值做處理; err_info:錯誤信息, 提示給用戶,讓用戶知道操作結果; data:返回的數據
3. err_no、err_info、data可以看做是Result的三個屬性, 不應該在方法中通過put操作設置值。 應該為其提供set方法。
package com.changez.sm.base.result;import java.util.HashMap;import java.util.Map;/** * @desc: 當且僅當err_no為0, 表示數據調用成功; * @auth: zona * 2017年2月18日 下午1:55:35 */public class Result extends HashMap{ PRivate int err_no; private String err_info; public Result () { } /** * 設置錯誤號,錯誤信息 * @param err_no * @param err_info */ public Result(int err_no, String err_info) { put("err_no", err_no); put("err_info", err_info); } /** * * @desc: 設置錯誤號, controller調用成功時可以使用該方式。 等同于setErroNo方法 * @auth: zona * 2017年2月19日 下午1:33:26 */ public void success() { put("err_no", 0); } /** * * @desc: 設置錯誤號 * @auth: zona * 2017年2月19日 下午1:33:10 * @param err_no */ public void setErrNo(int err_no) { put("err_no", err_no); } /** * * @desc: 設置錯誤信息 * @auth: zona * 2017年2月19日 下午1:32:58 * @param err_info */ public void setErrInfo(String err_info) { put("err_info", err_info); } /** * * @desc: 設置數據 * @auth: zona * 2017年2月19日 下午1:32:33 * @param data */ public void setData(Map data) { put("data", data); } //---> 調用方式 public static void main(String[] args) { test(); } /** * * @desc: 調用方式 * @auth: zona * 2017年2月19日 下午1:52:27 * @return */ @SuppressWarnings({ "unchecked", "unused", "rawtypes" }) public static Object test() { Result result = new Result(); Map retMap = new HashMap(); // 封裝數據 Object obj = null; // 獲取數據1 if(false) { // 檢測數據,若數據是錯誤的 retMap.put("user", obj); result.setErrNo(1); result.setErrInfo("錯誤信息。。。。"); result.setData(retMap); return result; } Object obj2 = null; // 獲取數據2 if(false) { // 檢測數據,若數據是錯誤的 retMap.put("user", obj2); result.setErrNo(1); result.setErrInfo("錯誤信息。。。。"); result.setData(retMap); return result; } // 流程都是正確的,封裝返回數據 retMap.put("user", obj); result.success(); result.setData(retMap); return result; } }
新聞熱點
疑難解答