自定义返回类

需求:

我们很多时候在传Json数据时都需要确定浏览器向服务器的请求是否成功,所以我们在返回Json数据时使用一个包装类将数据包装起来,并在其中添加一些状态码和成功失败的方法。

代码:

public class Msg {
	private int code;//请求响应码 200成功,400失败
	
	private String msg;//提示信息
	
	private Map<String,Object> data = new HashMap<>();//返回数据
	
	public static Msg success(){
		Msg result = new Msg();
		result.setCode(200);
		result.setMsg("请求成功!");
		return result;
	}
	public static Msg fail(){
		Msg result = new Msg();
		result.setCode(400);
		result.setMsg("请求成功!");
		return result;
	}
	
	public Msg add(String key, Object value){
		this.data.put(key, value);
		return this;
	}
	
	//此处省略getter setter方法......

在Controller中使用

	return Msg.success().add("pageInfo",page);

注意这种链式调用的方式,考虑一下我们是如何定义的方法,使得可以链式操作。
解释:

  • 首先,Msg.success().add(),succes是静态方法,所以可以直接类名.方法名调用。
  • 这时success方法返回的是一个添加了成功状态码和信息的对象,所以此对象拥有add方法(因为类中定义了)。
  • add方法接收key和value,并将其放入类成员变量data中,也就放在了这个对象中,这个方法的this指的是这个对象。
Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐