开发中可能返回各种各样的值, 如果我们以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; } }
新闻热点
疑难解答