模板类嵌套时新的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 楼答案
2个问题:
JsonResponse
是抽象的你不断地重新解释泛型:
它已经是泛型的,应该有可修改的类型参数