【发布时间】:2015-04-09 14:19:14
【问题描述】:
我在我的项目中编写了一个名为 CGC 的自定义注解:
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Documented
@Constraint(validatedBy = CGCValidator.class)
public @interface CGC {
String message() default "{person.cgc.error}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
boolean canBeNull() default false;
@Target({ METHOD, FIELD, ANNOTATION_TYPE, CONSTRUCTOR, PARAMETER })
@Retention(RUNTIME)
@Documented
public @interface List {
CGC[] value();
}
}
我有一个使用注释的验证器类,基本上,作为我的第一个验证,我想检查该字段是否为空,但前提是该字段的注释已将“canBeNull”元素指定为真(@CGC(canBeNull =“真”))。我的问题是:如何访问我的验证器类中的 canBeNull 元素?
*验证器应该是这样的:
public class CGCValidator implements ConstraintValidator<CGC, String> {
@Override
public void initialize(CGC annotation) {
}
@Override
public boolean isValid(String cgc, ConstraintValidatorContext constraintValidatorContext) {
if(!canBeNull() && cgc == null) {
return false;
}
...
【问题讨论】:
标签: java validation annotations