170 похожих чатов

Всем хай. Есть метод: public <T> List<T> get(Boolean isCollection, Class<T> result) {

RestTemplate restTemplate = new RestTemplate();

HttpEntity<Object> request = new HttpEntity<>(data, headers);

ResponseEntity<List<T>> r = restTemplate.exchange(getUri(), this.method, request, ???);
return r.getBody();
}

Как указать ресттемплейту что нужно десериализовввать именно лист Т?

21 ответов

5 просмотров

type reference

new ParameterizedTypeReference<List<T>>() {} ?

Sky-Alex Автор вопроса
Sky-Alex Автор вопроса
Ignat Simonenko
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 или что то в этом роде

Sky Alex
Тогда он теряет Т.

Указывай конкретный сразу

Sky Alex
Как?

Написать конкретный заместо T, не?

Sky-Alex Автор вопроса
Alexandr ∨∧‾ Emelyanov
Написать конкретный заместо T, не?

Так не могу. Сам метод универсаный хелпер.

Sky Alex
Так не могу. Сам метод универсаный хелпер.

Так передавай в метод, который использует rest template уже конкретный type reference

Sky-Alex Автор вопроса
Alexandr ∨∧‾ Emelyanov
Так передавай в метод, который использует rest tem...

А как? У меня есть класс orgs_dto (как пример, классов много, очень), есть API которое возвращает массив orgs_dto. Как мне указать тип List<orgs_dto> ?

Sky Alex
А как? У меня есть класс orgs_dto (как пример, кла...

Мне кажется с такими простыми вопросами пора в @javastart

Sky-Alex Автор вопроса
Alexandr ∨∧‾ Emelyanov
Мне кажется с такими простыми вопросами пора в @ja...

Простыми? Чет совсем не похоже. Как при такой сигнатуре get(Boolean isCollection, Class<T> result) получить лист Т?

Sky-Alex Автор вопроса
Alexandr ∨∧‾ Emelyanov
Заместо Class<T> передать type reference

Так не могу. Сигнатуру менять нельзя.

Sky Alex
Так не могу. Сигнатуру менять нельзя.

Посмотрите что там приходит, строку

Попробуй вот этот ответ. Но сам я не проверял. https://stackoverflow.com/a/54804877

Похожие вопросы

Обсуждают сегодня

Есть какой-нибудь для Delphi/FPC T*Compression(Decompression)Stream на базе LZ4/Zstd/любой другой быстрый(и хорошо сжимающий) алгоритм А ещё лучше в pure pascal А ещё лучше од...
notme
48
А чем вам питонисты не угодили?😂
.
79
type TObj = object procedure Init; virtual; end; TObj1 = object(TObj) procedure Init; override; end; procedure TObj1.Init; begin inherited; end; procedur...
Alexander 👋
29
Такой вопросец - есть функция function MySuperDuperConcat(const a: array of AnsiString): AnsiString; Как мне в её теле сделать вот так? Result:=Concat(a); А не грустный вариан...
notme
15
Всем привет. Поделитесь, пожалуйста, опытом. Есть форма, на которой имеется dbgrid и кнопки: добавить, редактировать, удалить. Если нет записей в dbgrid, то кнопки редактирова...
Евгений
5
type TExtensions<GExtender>=class function GetExtension<GEntityExtenderType>:GEntityExtenderType; end; function TExtensions<GExtender>.GetExtension<GEntityExtenderType...
zamtmn
8
Всем привет, написал код ниже, но он выдает сегфолт, в чем причина? #include <stdio.h> #include <stdlib.h> #include <string.h> struct product { char *name; float price; };...
buzz базз
86
Всем привет, препод задал вопрос, подскажите пожалуйста, какой адрес инкапсулирует указатель?
Свинка Пеппа
7
Почему никто ещё не написал квантовую виртуальную машину на Windows?
КТ315
7
Вот смотрите у меня есть два стрима сейчас fs, cs: TStream; fs := TFileStream.Create('filename'); cs := TCompressionStream.Create(compression_level, fs); Я хочу сделать так: ...
notme
5
Карта сайта