Пользовательская аннотация для параметра метода - PullRequest
0 голосов
/ 18 июня 2019

Я пытаюсь проверить параметр метода с помощью пользовательской аннотации, но средство проверки аннотации не вызывается.

Аннотация

@Target({ElementType.METHOD, ElementType.FIELD, ElementType.CONSTRUCTOR, ElementType.PARAMETER})
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy = FieldValidator.class)
public @interface ValidField {
    String message() default "Incorrect field.";

    Class<?>[] groups() default {};

    Class<? extends Payload>[] payload() default {};
}

FieldValidator

public class FieldValidator implements ConstraintValidator<ValidField, String> {
    @Override
    public void initialize(final ValidField arg0) {
    }

    @Override
    public boolean isValid(final String field, final ConstraintValidatorContext context) {
        System.out.println("Called annotations successfully - "+ field);
        return false;
    }
}

Тестирование по основному методу

 public void testAnnotation(@ValidField String q){
        System.out.println("inside testAnnotation..");
  }
    /************************* TESTING ****************************/
    public static void main(String[] args) {

        Test test= new Test();
        test.testAnnotation("sample");

Ожидается: аннотации вызваны успешно - образец должен отображаться в консоли

1 Ответ

0 голосов
/ 19 июня 2019

Хорошо, это была ошибка при тестировании основным методом.@Retention(RetentionPolicy.RUNTIME) говорит, что аннотация будет доступна во время выполнения.

Она была успешно протестирована сервисным вызовом, когда сервер работает.

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