Как добавить список классов объектов в Arraylist?

Необходимо добавить список объектов с ошибками в тело arrayylist. код, в котором я пытаюсь установить response.getErrors() на response.getBody():

String jsonResponse = restTemplate.postForObject(url, requestBody, String.class);
JavaType valueType = mapper.getTypeFactory().constructParametricType(ResponseContainer.class, type);
ResponseContainer<ResponseType> response = mapper.readValue(jsonResponse, valueType);
        // TODO if error != null put errors to body
if (response.getErrors() != null) {
    response.getBody().addAll(response.getErrors());
}
return response.getBody();

Класс модели:

@ApiModelProperty(notes = "Список параметров сообщения")
List<T> body = new ArrayList<T>();

@ApiModelProperty(notes = "Список ошибок")
List<ResponseError> errors;

Ошибка:

Error:(70, 35) java: no suitable method found for add(java.util.List<com.infin.it.integrator.impl.base.ResponseError>)
method java.util.Collection.add(ResponseType) is not applicable
  (argument mismatch; java.util.List<com.infin.it.integrator.impl.base.ResponseError> cannot be converted to ResponseType)
method java.util.List.add(ResponseType) is not applicable
  (argument mismatch; java.util.List<com.infin.it.integrator.impl.base.ResponseError> cannot be converted to ResponseType)

Это действительно полное сообщение об ошибке?

Joakim Danielson 03.01.2019 09:30

Да, полная ошибка в response.getErrors ()

Chingiz Batirbaev 03.01.2019 09:35

Нет, я имел в виду, что "в списке нельзя применить" полное сообщение об ошибке?

Joakim Danielson 03.01.2019 09:35

охх, извини. Ошибка: addAll (java.util.Collection <? Extends ResponseType>) в списке не может применяться к (java.util.List <com.infin.it.integrator.impl.base.ResponseEr‌ ror>)

Chingiz Batirbaev 03.01.2019 09:58

Похоже, что com.infin.it.integrator.impl.base.ResponseError не наследуется от ResponseType. Если оба списка являются частью объекта «response», зачем вообще к ним присоединяться?

Joakim Danielson 03.01.2019 10:00

@ChingizBatirbaev, пожалуйста, покажите, как выглядит com.infin.it.integrator.impl.base.ResponseError , и включите подробное сообщение об ошибке в вопрос

Andrew Tobilko 03.01.2019 10:14

@ChingizBatirbaev - Что будет, если вы замените ResponseContainer<ResponseType> response на ResponseContainer<ResponseError> response?

smilyface 03.01.2019 10:53

Также @ChingizBatirbaev - пожалуйста, обновите сообщение об ошибке (не менее 5-6 строк) в потоке стека

smilyface 03.01.2019 10:55

ResponseError выглядит так: @ApiModelProperty (notes = "Источник ошибки") String source; @ApiModelProperty (notes = "Код ошибки") Строковый код;

Chingiz Batirbaev 03.01.2019 10:56

Я не могу изменить тип ответа на responseError, потому что это интеграция со сторонними сервисами.

Chingiz Batirbaev 03.01.2019 10:58

Ошибка: (70, 35) java: не найден подходящий метод для addAll (java.util.List <com.infin.it.integrator.impl.base.Resp‌ onseError>) метод java.util.Collection.addAll (java. util.Collection <? extends ResponseType>) не применяется (несоответствие аргументов; java.util.List <com.infin.it.integrator.impl.base.ResponseErr‌ или> не может быть преобразован в java.util.Collection <? extends ResponseType>) метод java.util.List.addAll (java.util.Collection <? Extends ResponseType>) не применим (несоответствие аргументов;

Chingiz Batirbaev 03.01.2019 11:09

java.util.List <com.infin.it.integrator.impl.base.ResponseErr‌ или> нельзя преобразовать в java.util.Collection <? расширяет ResponseType>)

Chingiz Batirbaev 03.01.2019 11:09

@smilyface, пожалуйста, помогите мне

Chingiz Batirbaev 03.01.2019 11:36

@ChingizBatirbaev - Прежде всего, мы здесь, чтобы помочь. Пожалуйста, обновите ошибки, которые вы упомянули в своем вопросе.

smilyface 03.01.2019 12:50
stackoverflow.com/questions/18442753/… сохраните это как пример - посмотрите, как он предоставил подробную информацию об исключении, которое он получил.
smilyface 03.01.2019 12:58

другой пример здесь stackoverflow.com/questions/29280705/…

smilyface 03.01.2019 12:59
Пользовательский скаляр GraphQL
Пользовательский скаляр GraphQL
Листовые узлы системы типов GraphQL называются скалярами. Достигнув скалярного типа, невозможно спуститься дальше по иерархии типов. Скалярный тип...
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
Как вычислять биты и понимать побитовые операторы в Java - объяснение с примерами
В компьютерном программировании биты играют важнейшую роль в представлении и манипулировании данными на двоичном уровне. Побитовые операции...
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Поднятие тревоги для долго выполняющихся методов в Spring Boot
Приходилось ли вам сталкиваться с требованиями, в которых вас могли попросить поднять тревогу или выдать ошибку, когда метод Java занимает больше...
Полный курс Java для разработчиков веб-сайтов и приложений
Полный курс Java для разработчиков веб-сайтов и приложений
Получите сертификат Java Web и Application Developer, используя наш курс.
1
16
170
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Я поменял тип @ApiModelProperty(notes = "Список ошибок") List<ResponseError> errors; на List<T> errors = new ArrayList<T>(); Вскоре я добавил поля, полученные в ответ на мой ResponseBaseModel.class, чтобы взять эти поля и показать ошибку.

Это решило мою проблему. Спасибо всем за советы.

Другие вопросы по теме