2014-10-06 3 views
0

Я борюсь с общими параметрами с помощью функции. Следующей является моя функция.Укажите тип возврата в качестве параметра для функции с генериками

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. Я просто хочу указать общий тип через параметр. Любая помощь оценивается.

ответ

0

Попробуйте это:

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

или еще:

ResponseEntity<RES> resp = restTemplate.postForEntity(postRequest, requestBody, type); 
return resp.getBody(); 
Смежные вопросы