在使用Gson转换请求结果时如果遇到定义了泛型的属性,转换成对象后不能直接对泛型进行指定转换,需要用到TypeToken。
例如,请求结果String转换成对象,请求结果bean:
public class NetResultBean<T> {
//{"code":200,
// "message":"success",
// "data":{}}
public int code;
public T data;
public String message;
}
对请求回来的数据进行转换时,使用TypeToken包裹
Type listType = new TypeToken<NetResultBean<具体数据bean>>(){}.getType();
NetResultBean<具体数据bean> resultBean = GsonUtil.GsonToBean(result, listType);
这样转换之后的resultBean的data就是具体数据bean的实例对象。