RestTemplate restTemplate = new RestTemplate();
HttpEntity<Object> request = new HttpEntity<>(data, headers);
ResponseEntity<List<T>> r = restTemplate.exchange(getUri(), this.method, request, ???);
return r.getBody();
}
Как указать ресттемплейту что нужно десериализовввать именно лист Т?
type reference
new ParameterizedTypeReference<List<T>>() {} ?
Тогда он теряет Т.
Получаю class java.util.LinkedHashMap cannot be cast to class com.blabla.orgs_dto (java.util.LinkedHashMap is in module java.base of loader 'bootstrap'; com.blabla.orgs_dto is in unnamed module of loader 'app')
Там есть вариант метода, куда передается TypeReference или что то в этом роде
Указывай конкретный сразу
Написать конкретный заместо T, не?
Так не могу. Сам метод универсаный хелпер.
Так передавай в метод, который использует rest template уже конкретный type reference
А как? У меня есть класс orgs_dto (как пример, классов много, очень), есть API которое возвращает массив orgs_dto. Как мне указать тип List<orgs_dto> ?
Мне кажется с такими простыми вопросами пора в @javastart
Простыми? Чет совсем не похоже. Как при такой сигнатуре get(Boolean isCollection, Class<T> result) получить лист Т?
Заместо Class<T> передать type reference
Так не могу. Сигнатуру менять нельзя.
Посмотрите что там приходит, строку
Попробуй вот этот ответ. Но сам я не проверял. https://stackoverflow.com/a/54804877
Тогда можно сделать иначе
Обсуждают сегодня