Java Ошибка объединения проверки vavr из-за исключения NullPointerException - PullRequest
0 голосов
/ 28 мая 2020

У меня есть следующий метод проверки с использованием API Validation vavr. Я не хочу вызывать метод validateCounterLimits(counter), если первый метод проверки validateMandatoryFields(counter) (который проверяет, являются ли обязательные поля пустыми) не работает, потому что в этом сценарии validateCounterLimits(counter) производит NullPointerException.

Я не мог просто используйте javax.validation.constraints.NotNull, потому что эти поля являются условными при определенных обстоятельствах

@Override
public Validation<AccountResult, AccountCreateCommand> validate(final AccountCreateCommand command) {
    for (final AccountCreateCommand.Counter counter : command.getCounters()) {
        final Validation<AccountResult, AccountCreateCommand> result = Validation.combine(validateMandatoryFields(counter),
                validateCounterLimits(counter))
                .ap((counter1, counter2) -> command)
                .mapError(Traversable::get);
        if (result.isInvalid()) {
            return Validation.invalid(result.getError());
        }
    }
    return Validation.valid(command);
}

Не могли бы вы помочь? Спасибо

...