关于静态变量、方法、类,这里写的很清楚:java static 详解_春风化作秋雨的博客-CSDN博客
下面主要记录一个static类的使用例子。
假设我们的web后端要设计一个返回类,类中主要有以下成员:
public class ResponseEntity{
int code;
String msg;
HashMap<String,Object> data;
}
对于上面的返回类,一个典型的使用场景如下:
import ResponseEntity from XXX
public class example1{
public ResponseEntity example2{
//业务代码开始
......
//业务代码结束
//构造返回类
ResponseEntity res = new ResopnseEntity();
res.setCode(0);
res.setMsg("success");
res.setData(data);
return res;
}
}
下面看一个使用static方法的返回类设计:
public class R extends HashMap<String, Object> {
private static final long serialVersionUID = 1L;
public R() {
put("code", 0);
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;
}
}
返回同样的结果,采用上面的类设计法就能简便很多:
import R from XXX
public class example1{
public R example2{
//业务代码开始
......
//业务代码结束
//构造返回类
return R.ok("success").put("data",data);
}
}