Необходимо добавить список объектов с ошибками в тело 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)
Да, полная ошибка в response.getErrors ()
Нет, я имел в виду, что "в списке нельзя применить" полное сообщение об ошибке?
охх, извини. Ошибка: addAll (java.util.Collection <? Extends ResponseType>) в списке не может применяться к (java.util.List <com.infin.it.integrator.impl.base.ResponseEr ror>)
Похоже, что com.infin.it.integrator.impl.base.ResponseError не наследуется от ResponseType. Если оба списка являются частью объекта «response», зачем вообще к ним присоединяться?
@ChingizBatirbaev, пожалуйста, покажите, как выглядит com.infin.it.integrator.impl.base.ResponseError , и включите подробное сообщение об ошибке в вопрос
@ChingizBatirbaev - Что будет, если вы замените ResponseContainer<ResponseType> response на ResponseContainer<ResponseError> response?
Также @ChingizBatirbaev - пожалуйста, обновите сообщение об ошибке (не менее 5-6 строк) в потоке стека
ResponseError выглядит так: @ApiModelProperty (notes = "Источник ошибки") String source; @ApiModelProperty (notes = "Код ошибки") Строковый код;
Я не могу изменить тип ответа на responseError, потому что это интеграция со сторонними сервисами.
Ошибка: (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>) не применим (несоответствие аргументов;
java.util.List <com.infin.it.integrator.impl.base.ResponseErr или> нельзя преобразовать в java.util.Collection <? расширяет ResponseType>)
@smilyface, пожалуйста, помогите мне
@ChingizBatirbaev - Прежде всего, мы здесь, чтобы помочь. Пожалуйста, обновите ошибки, которые вы упомянули в своем вопросе.
другой пример здесь stackoverflow.com/questions/29280705/…




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