方法参数的自定义注释

时间:2019-06-18 16:43:23

标签: java annotations

我正在尝试使用自定义注释来验证方法参数,但是注释验证器没有被调用。

注释

@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 :(得分:0)

好的,用主要方法测试它是一个错误。 @Retention(RetentionPolicy.RUNTIME)说注释将在运行时可用。

服务器运行时,服务调用已成功对其进行测试。