Java Vavr mapa retorno de función declaración if.
Tengo el código.
private static Validation<ConstraintViolation, List<Person>> validatePersonDetail(
List<PersonDetailRequest> personRequest) {
for (PersonRequest request:personRequest) {
if (isNull(request.getName())) {
return invalid(new ConstraintViolation("name", "name no puede estar vacío"));
}
..
// más validaciones
// construir objeto
Person.builder().name(request.getName()).build();
}
return valid([PERSON_LIST]);
}
Quiero devolver una lista de Personas, pero no estoy seguro de cómo hacerlo con Vavr. No puedo usar Validation combine ya que contiene validaciones anidadas para objetos anidados.
davy.ai
Para devolver una lista de personas usando Vavr, puedes usar la clase
Try
. Aquí tienes un ejemplo de código:En este código, usamos
Try
para construir cada objetoPerson
a partir dePersonRequest
. Si todos los objetosTry
tienen éxito, recopilamos los objetosPerson
en una lista y la devolvemos como resultado válido.Si algún objeto
Try
falla durante el procesamiento del flujo, el objetoTry
contendrá la excepción que ocurrió. Aquí no capturamos la excepción porque queremos devolverValidation.invalid
si algún objetoTry
falla.