public abstract class VfNetCallback<T> extends AbsCallback<VfNetResponse<T>> {
@Override
public VfNetResponse<T> parseNetworkResponse(Response response, int id) throws Exception {
VfNetResponse<T> netResponse = JSON.parseObject(response.body().toString(), VfNetResponse<T>.class);
return netResponse;
}
}
我可以用
Class<T> dataClass = (Class<T>) ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
获取T
的课程。但是如何才能获得VfNetResponse<T>
的课程?
答案 0 :(得分:0)
最后,我找到了解决方案。
@Override
public VfNetResponse<T> parseNetworkResponse(Response response, int id) throws Exception {
Type dataType = ((ParameterizedType) getClass().getGenericSuperclass()).getActualTypeArguments()[0];
Type type = new ParameterizedTypeImpl(new Type[]{dataType}, null, VfNetResponse.class);
VfNetResponse<T> netResponse = JSON.parseObject(response.body().string(), type);
return netResponse;
}