Проверка метода Java Bean не работает для вложенного класса @NotBlank с неизменяемыми элементами - PullRequest
0 голосов
/ 25 сентября 2019

У меня есть POJO, как показано ниже:

@Value.Immutable
public interface Customer {

    @NotBlank
    String name();

    Optional<@Valid @NotNull(groups = Address.class) AddressDetails> addressDetails();

    @Value.Immutable
    interface AddressDetails {

        @NotBlank
        String details();
    }
}

И я написал такой валидатор:

private static Set<ConstraintViolation> validate(final Object object, final Class<?>... groups) {
    Set<ConstraintViolation> violations = new HashSet<>();
    for (Method method : object.getClass().getInterfaces()[0].getDeclaredMethods()) {
        try {
            VALIDATOR.validateReturnValue(
                    object,
                    method,
                    method.invoke(object),
                    groups).forEach(constraint -> {
                        ConstraintViolation constraintViolation = new ConstraintViolation(
                                method.getName(),
                                constraint.getMessageTemplate()
                        );
                        violations.add(constraintViolation);
            });
        } catch (IllegalAccessException | InvocationTargetException e) {
            throw new IllegalStateException("daads", e);
        }
    }
    return violations;
}

Когда я передаю следующий объект Customer в методе validate выше,

ImmutableCustomer.builder().name("test").addressDetails(ImmutableAddressDetails.builder().details("")).build в объекте и группе как Address.class

Мне кажется, что должно возвращаться нарушение, поскольку поле сведений пусто, и я пометил его как NotBlank.Но это не подводит.Есть идеи, что я делаю не так?

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