在android实际开发中,我们在请求网络数据的时候,服务器返回的通常都是json字符串,我们需要将json转化成我们需要的类,当然这些通常是使用gson来完成的,过程大概就是要判断解析后的类是否存在,类是否有效,类字段是否有值,其实这些逻辑都差不多,所以就会导致有很多重复的地方,这个时候我就想到用泛型来处理这个过程。
先看看我新建的项目空间:
类文件介绍
HttpResponse.java
//网络请求数据所对应的java类
//code:0表示请求数据成功;不为0则表示失败
//msg:如果网络请求失败,代表失败原因
//result:实际业务数据
public class HttpResponse {
private String msg;
private String code;
private Object result;
public String getMsg() {
return msg;
}
public String getCode() {
return code;
}
public Object getResult() {
return result;
}
public void setMsg(String msg) {
this.msg = msg;
}
public void setCode(String code) {
this.code = code;
}
public void setResult(Object result) {
this.result = result;
}
}
MyListener.java
//网络请求接口回调,这里使用了泛型,不考虑用interface
package study.fanxing.bean;
public abstract class MyListener<T> {
public abstract void success(T t);
public abstract void fail(String msg);
}
Student.java和Teacher.java(这两个是业务类,为了方便测试,这两个类的字段都是一样的)
package study.fanxing.bean;
public class Student {