我正在尝试使用自定义注释来验证方法参数,但是注释验证器没有被调用。
注释
@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");
预期:成功调用了注释-示例应显示在控制台中
答案 0 :(得分:0)
好的,用主要方法测试它是一个错误。
@Retention(RetentionPolicy.RUNTIME)
说注释将在运行时可用。
服务器运行时,服务调用已成功对其进行测试。