最近做一个网络请求框架切换类,为了方便在网络请求回调的时候直接解析成含有泛型的bean或list,研究了一下如何用gson解析,经本人测试不管直接解析泛型、解析带泛型的bean,还是解析list、解析带泛型bean的list,都可以
直接上代码
public abstract class ICallBack {
abstract void success(String result);
abstract void error(String error);
}
public abstract class IGsonCallBack<Result> extends ICallBack {
@Override
public void success(String result) {
Gson gson = new Gson();
ParameterizedType type = (ParameterizedType) getClass().getGenericSuperclass();
Type[] types = type.getActualTypeArguments();
JsonReader jsonReader = new JsonReader(new StringReader(result));
success((Result) gson.fromJson(jsonReader, types[0]));
}
public abstract void success(Result result);
@Override
public abstract void error(String error);
}