将返回类型指定为具有泛型的函数的参数

时间:2014-10-06 13:46:38

标签: java spring generics parameters jackson

我正在努力使用功能范围的泛型参数。以下是我的功能。

public <RES, REQ> RES makePostRequest(String postRequest, REQ requestBody, Class<RES> type) {
        Response<type> resp = restTemplate.postForObject(postRequest, requestBody, Response.class);
        return resp.getBody();
}

Jackson,执行反序列化的json库需要指定返回类型。否则,响应不会转换为正确的类型。但是,Response<type>无效。如何将RES作为参数并在Response<RES>中指定?

注意:我不想使用restTemplate.exchange。我不想设置所有的http标头并创建一个http实体。我只想通过参数指定泛型类型。任何帮助表示赞赏。

1 个答案:

答案 0 :(得分:0)

试试这个:

return restTemplate.postForObject(postRequest, requestBody, type);

或者:

ResponseEntity<RES> resp = restTemplate.postForEntity(postRequest, requestBody, type);
return resp.getBody();