У меня есть следующий метод проверки с использованием 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);
}
Не могли бы вы помочь? Спасибо