1、获取Type使用如下
//获取
//普通object
Type type = new ParseType<User>() {}.getType();
//列表list
Type type = new ParseType<List<User>>() {}.getType();
//复杂的
Type type = new ParseType<NetReslult<List<User>>>() {}.getType();
//解析
User user = JSON.parseObject(jsonString,type); //fastjson
User user = gson.fromJson(jsonString, type); //gson
NetReslult<List<User>> netResult = JSON.parseObject(jsonString, type);
NetReslult<List<User>> netResult = gson.fromJson(jsonString, type);
注意new出来的是ParseType之类的对象 new ParseType() {},通过泛型这种方式来获取Type类型必须用子类的对象,看清楚了,所有new的ParseType后面都有{}所以生成的是子类的对象。
2、解析使用
public class SyncRequest<T> extends ParseType<T> {
public T syncRequest(String url,Params params) throws Exception{
String jsonString = 网络请求代码略...;
T parse = JSON.parseObject(jsonString,mType);
return parse;
}
}
3、请求+解析:
User user = new SyncRequest<User>().syncRequest(url,params);
NetReslult<List<User>> data = new SyncRequest<NetReslult<List<User>>>(){}.syncRequest(url,params);