Как изменить ответ Java на основе результатов ErrorMap - PullRequest
0 голосов
/ 18 октября 2019

Я из мира c #, поэтому привыкнуть к синтаксису Java немного сложно. Вот код, который я хочу изменить:

return _restClient
        .createTask(batchGetRequest)
        .map(Response::getItem)
        .map(response -> {
          if (response.getErrors().size() > 0) {
            throw new ServiceException(HttpStatus.S_500_INTERNAL_SERVER_ERROR,
                "Failed to fetch data");
          }

          return response
              .getResults()
              .values()
              .stream()
              .map(Response::getItem)
              .collect(Collectors.toList());
        })
        .recover(t -> {
          throw ResponseUtils.addContext("Failed to get data", t);
        });

Итак, я обнаружил, что не все ошибки в карте getErrors() созданы равными. Для одного типа ошибки я хочу игнорировать ее и использовать key, связанный с этой ошибкой (int), чтобы удалить коррелированный ответ из response, а затем продолжить анализ любых ошибок, которые мы выиграли. не игнорируйте, чтобы потенциально вызвать исключение.

Есть ли чистый способ сделать это в Java? Я знаю, как бы это сделать в c #, но этот декоративный шаблон Java, смешанный с этими streams, сбивает меня с толку.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...