package com.demo.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 extends Callback { IGenericsSerializator mGenericsSerializator; public GenericsCallback(IGenericsSerializator serializator) { mGenericsSerializator = serializator; } @Override public T parseNetworkResponse(Response response, int id) throws IOException { String string = response.body().string(); Class entityClass = (Class) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0]; if (entityClass == String.class) { return (T) string; } T bean = mGenericsSerializator.transform(string, entityClass); return bean; } }