vavr Валидация потока валидаторов - PullRequest
1 голос
/ 16 апреля 2019

У меня есть такой код:

  return validators
            .stream()
            .flatMap(v -> v.validate(scoreRequest).stream())
            .collect(toList());

Каждый валидатор возвращает List<String> ошибок, если список пуст, это означает, что запрос действителен.

Теперь яхочу представить вавр.Валидатор.Новый тип возвращаемого значения каждого validator.validate теперь равен Validation<List<String>,ScoreRequest>

Как можно объединить выходные данные каждого валидатора, используя потоки, как раньше?

1 Ответ

1 голос
/ 19 апреля 2019

Вы можете использовать sequence , чтобы сделать именно это.

Так что, если ваш validators является List<Validation<List<String>, ScoreRequest>>, применение этой функции вернет Validation<Seq<String>, Seq<ScoreRequest>>, которое выглядит точно так же, как вы хотите. Я позволю вам разобраться в том, как превратить Seq в любую структуру, какую вы захотите.

...