admin
2022-01-07 8dfe5354073b700af45d5cb472dd5f003e6f3f25
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
package com.ysvideo.zhibo.lib.common.okhttp.callback;
 
import java.io.IOException;
import java.lang.reflect.ParameterizedType;
 
import okhttp3.Response;
 
/**
 * Created by JimGong on 2016/6/23.
 */
 
public abstract class GenericsCallback<T> extends Callback<T> {
    IGenericsSerializator mGenericsSerializator;
 
    public GenericsCallback(IGenericsSerializator serializator) {
        mGenericsSerializator = serializator;
    }
 
    @Override
    public T parseNetworkResponse(Response response, int id) throws IOException {
        String string = response.body().string();
        Class<T> entityClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
        if (entityClass == String.class) {
            return (T) string;
        }
        T bean = mGenericsSerializator.transform(string, entityClass);
        return bean;
    }
 
}