其实这个每个成熟的程序员都会自有一套方法,我也是这样。
还是从第一家工作的公司传承下来的resultBean返回也是大大小小使用了一年多。
因为一直要么是第一个团队统一使用这个方法,要么第二份工作作为唯一的一个开发自然想怎么写怎么写。所以也是神奇的,我近日维护一个别人的项目才看到了另一种封装方法。
平心而论,不同的方法实现的结果是相同的,只不过使用起来还是很不同,比如不得不承认我反正喜欢现在这个。
两种我都会列出来,然后以后如果再接触到新的也会尽量记得续上。
ResultBean返回值
public class ResultBean {
private int status; // 状态码:200是正常调用 500是程序出错
private String msg; // 返回消息:成功还是失败
private Object data; // 返回的对象。有时候我们要返回一些数据就放在这个里,如果不需要返回数据则是null
private Boolean result; // 接口调用的结果 true是成功。false是失败。
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public Boolean getResult() {
return result;
}
public void setResult(Boolean result) {
this.result = result;
}
public Object getData() {
return data;
}
public void setData(Object data) {
this.data = data;
}
public ResultBean() {
}
public ResultBean(int status, String msg, Object data, Boolean result) {
super();
this.status = status;
this.msg = msg;
this.data = data;
this.result = result;
}
/**
* 对返回值的封装
*
* @param status
* @param msg
* @param object
* @param flag
* @return
*/
public static ResultBean result(int status, String msg, Object object, boolean flag) {
return new ResultBean(status, msg, object, flag);
}
}
这种方法是我用了很久 的方法,用起来也还算是简单。大概到返回的时候
ResultBean.result(200/500,"XXX",data,true/false);
就ok了。
R返回值封装
其实仔细想想,只是一个名字的不同,不过这个R好像是有故事的,来源于sun的一个封装。这个返回值的封装很有灵性和使用方便。反正比我之前用的好啊。
public class R extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;
public R() {
put("code", 200);
put("msg", "success");
}
public static R error() {
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, "未知异常,请联系管理员");
}
public static R error(String msg) {
return error(HttpStatus.SC_INTERNAL_SERVER_ERROR, msg);
}
public static R error(int code, String msg) {
R r = new R();
r.put("code", code);
r.put("msg", msg);
return r;
}
public static R ok(String msg) {
R r = new R();
r.put("msg", msg);
return r;
}
public static R ok(Map<String, Object> map) {
R r = new R();
r.putAll(map);
return r;
}
public static R ok() {
return new R();
}
public R put(String key, Object value) {
super.put(key, value);
return this;
}
}
这个很清晰明了,只有两个code,msg是必填项,具有有什么data可以自己往里面put。对msg或code不同可以自己put覆盖原来的结果。如果没有返回值的正常返回只要R.ok()就ok了。
反正是大爱这种,然后维护别人的项目也算是学到了自己的东西。
就到这里了,简单的介绍了两种,以后遇到觉得比较好的会继续往上加。
网友评论