0

全て

私は以下を定義しています:

以下のような JsonResponse.class :

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
}

}
4

1 に答える 1

0
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
    }
    

それはすでにジェネリックであり、具体化可能な型パラメーターを持つ必要があります。

于 2013-10-12T11:59:05.760 に答える