有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

模板类嵌套时新的Java泛型类构造函数问题

全部

我有以下定义:

JsonResponse。分类如下:

public abstract class JsonResponse<T> extends AbstractResponse {
private T jsonObject;

public JsonResponse(HttpResponse httpResponse, Class<T> classT) {
    super(httpResponse);
    jsonObject = new Gson().fromJson(
            ResponseUtils.getStringContent(getHttpResponse()), classT);
}

public T getJsonObject() {
    return jsonObject;
}

}

但在课堂以下,我想以新的身份返回:

return new JsonResponse<T>(response, classT);

但我不能编译错误,请你看一下。谢谢

public class JsonResponseHandler<T> implements ResponseHandler<JsonResponse<T>> {

private Class<T> classT;

public JsonResponseHandler(Class<T> classT) {
    this.classT = classT;

}

@Override
public JsonResponse<T> handleResponse(HttpResponse response)
        throws ClientProtocolException, IOException {

    return new  JsonResponse<T>(response, classT) ; //compile  always error
}

}

共 (1) 个答案

  1. # 1 楼答案

    public JsonResponse<T> handleResponse(HttpResponse response)
        throws ClientProtocolException, IOException {
    
    return new  JsonResponse<T>(response, classT) ; //compile  always error
    }
    

    2个问题:

    • JsonResponse是抽象的

    • 你不断地重新解释泛型:

      public JsonResponse handleResponse(HttpResponse response)
      throws ClientProtocolException, IOException {
      
          return new  JsonResponse(response, classT) ; //compile  always error
      }
      

    它已经是泛型的,应该有可修改的类型参数