这是定义好的接口数据返回
public interface getDataResult<T> {
void onResult(T t);
void onError();
}
通过百度搜索到使用
Type superClass = this.getClass().getGenericSuperclass();
this.type = ((ParameterizedType)superClass).getActualTypeArguments()[0];
就可以获取到泛型类型,因此我们将该功能放到基类中,让抽象接口实现就可以,如下
public class TypeReference<T> {
protected final Type type;
protected TypeReference() {
Type superClass = this.getClass().getGenericSuperclass();
this.type = ((ParameterizedType)superClass).getActualTypeArguments()[0];
}
public Type getType() {
return this.type;
}
}
最后继承实现上面两个即可
public abstract static class getDataResultImpl<T> extends TypeReference<T> implements getDataResult<T>{
}
public static <T> T gsonToBean(String gsonString, Type type) {
if (gsonString == null || type == null) return null;
Gson gson = new Gson();
gson.fromJson(gsonString, type);
return gson.fromJson(gsonString, type);
}
用法
result.onResult(gsonToBean(context, msg, result.getType()));
其中resul就是getDataResultImpl<T>的引用