Что указать в параметре responseType метода exchange RestTemplate

Пытаюсь сформировать запрос

private final RestTemplate httpClient;
ResponseEntity<DataEntity<User>> response =
    httpClient.exchange(Url,
    HttpMethod.POST, 
    httpEntity,
    User.class);

И получаю ошибку

Required type:ResponseEntity<DataEntity<User>>
Provided:ResponseEntity<User>

Что мне надо указать в этом параметре?

DataEntity - это класс обертка
public class DataEntity<T>{
    private T data;
}

Что мне надо указать вместо User.class?


Ответы (1 шт):

Автор решения: Михаил Ребров

Используйте ParameterizedTypeReference
Это специальный вспомогательный класс в Spring Framework, предназначенный для передачи ссылок на обобщения/параметризируемые классы

new ParameterizedTypeReference<DataEntity<User>>() {}

В итоге:

private final RestTemplate httpClient;
ResponseEntity<DataEntity<User>> response =
    httpClient.exchange(Url,
    HttpMethod.POST, 
    httpEntity,
    new ParameterizedTypeReference<DataEntity<User>>() {}
);
→ Ссылка