GsonObjectCallback
来源:互联网 发布:火凤凰云计算拖欠工资 编辑:程序博客网 时间:2024/06/03 17:02
package com.example.myapplication.utils;import android.os.Handler;import com.google.gson.Gson;import java.io.IOException;import java.lang.reflect.ParameterizedType;import java.lang.reflect.Type;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;/** * 1. 类的用途 如果要将得到的json直接转化为集合 建议使用该类 * 该类的onUi() onFailed()方法运行在主线程 * 2. @author forever * 3. @date 2017/9/24 18:47 */public abstract class GsonObjectCallback<T> implements Callback { private Handler handler = OkHttp3Utils.getInstance().getHandler(); //主线程处理 public abstract void onUi(T t); //主线程处理 public abstract void onFailed(Call call, IOException e); //请求失败 @Override public void onFailure(final Call call, final IOException e) { handler.post(new Runnable() { @Override public void run() { onFailed(call, e); } }); } //请求json 并直接返回泛型的对象 主线程处理 @Override public void onResponse(Call call, Response response) throws IOException { String json = response.body().string(); Class<T> cls = null; Class clz = this.getClass(); ParameterizedType type = (ParameterizedType) clz.getGenericSuperclass(); Type[] types = type.getActualTypeArguments(); cls = (Class<T>) types[0]; Gson gson = new Gson(); final T t = gson.fromJson(json, cls); handler.post(new Runnable() { @Override public void run() {onUi(t); } }); }}
阅读全文
0 0
- GsonObjectCallback
- okhttp3的工具类(GsonArrayCallback GsonObjectCallback NetWorkUtils OkHttp3Utils)
- 第九章0.2
- Android MVVM架构模式(二)——DataBinding框架(一)
- NOIP2017游记兼OI半程回忆录
- git
- 赋值类型转换
- GsonObjectCallback
- HDU
- MVP
- SpringMVC 文件上传配置,多文件上传,使用的MultipartFile
- python2与python3在pycharm中的切换
- Java阶段学习概括
- The Meaningless Game 【codeforces】【思维】
- JSP内建对象介绍
- C语言基础学习(2)