约束批注中的变量字段
2022-09-04 21:32:36
我需要创建一个自定义约束注释,该注释可以访问我的bean的另一个字段的值。我将使用此注释来验证字段,因为它取决于另一个字段的值,但是我定义它的方式,编译器说我的字段的“注释属性的值”必须是常量表达式”。
我是这样定义的:
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Constraint(validatedBy=EqualsFieldValidator.class)
@Documented
public @interface EqualsField {
public String field();
String message() default "{com.myCom.annotations.EqualsField.message}";
Class<?>[] groups() default {};
Class<? extends Payload>[] payload() default {};
}
public class EqualsFieldValidator implements ConstraintValidator<EqualsField, String>{
private EqualsField equalsField;
@Override
public void initialize(EqualsField equalsField) {
this.equalsField = equalsField;
}
@Override
public boolean isValid(String thisField, ConstraintValidatorContext arg1) {
//my validation
}
}
在我的豆子里,我想要这样的东西:
public class MyBean{
private String field1;
@EqualsField(field=field1)
private String field2;
}
有没有办法定义注释,以便字段值可以是变量?
谢谢