如何获得VfNetCallback <t>类

时间:2017-11-11 09:10:52

标签: java reflection

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>的课程?

1 个答案:

答案 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;
}