Вы на самом деле не используете параметр type
, переданный методу, который уже содержит Class<T>
, который, как вы говорите, может быть PhotoDto.class
. Просто используйте этот параметр:
ResponseEntity<T[]> response = restTemplate.getForEntity(url, type);
Кроме того, ваш метод возвращает тип void
, а response
не используется. Измените подпись и верните response
.
public <T> ResponseEntity<T> fetchTestPhotos(String url, Class<T> type) {
....
return response;
}
Наконец, если вы хотите вернуть ResponseEntity<T[]>
с массивом generi c, вы также должны изменить формальные параметры. T
и T[]
не являются взаимозаменяемыми.
public <T> ResponseEntity<T[]> fetchTestPhotos(String url, Class<T[]> type) {
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<T[]> response = restTemplate.getForEntity(url, type);
if (response.getStatusCode().value() != 200) {
throw new CannotFetchData("Cannot fetch data from " + url);
}
return response;
}