Java - 只用一个注解验证多个字段
Java - Validating more than one field with only one annotation
我找到了一个类似的问答 -> How can I validate two or more fields in combination?
但我想在不使用继承的情况下使其可重用。
例如,我想编写一个注释来检查结束日期必须大于开始日期。
class A {
Date startDate;
Date endDate;
}
class B {
Date startDate;
Date endDate;
}
根据我链接的答案,我需要写2个单独的注释。如何使用单个注释来完成?
您可以使用反射来获取字段值。
- 在您链接的示例中,您需要向
@AddressAnnotation
添加 2 个字段:
- 开始日期字段名称
- 结束日期字段名
- 将它们存储在
MultiCountryAddressValidator
中的 initialize
方法中。
- 将
implements ConstraintValidator<AddressAnnotation, Address>
更改为implements ConstraintValidator<AddressAnnotation, Object>
- 在
isValid
方法中使用反射获取开始和结束日期的实际值。
我找到了一个类似的问答 -> How can I validate two or more fields in combination?
但我想在不使用继承的情况下使其可重用。
例如,我想编写一个注释来检查结束日期必须大于开始日期。
class A {
Date startDate;
Date endDate;
}
class B {
Date startDate;
Date endDate;
}
根据我链接的答案,我需要写2个单独的注释。如何使用单个注释来完成?
您可以使用反射来获取字段值。
- 在您链接的示例中,您需要向
@AddressAnnotation
添加 2 个字段:
- 开始日期字段名称
- 结束日期字段名
- 将它们存储在
MultiCountryAddressValidator
中的initialize
方法中。 - 将
implements ConstraintValidator<AddressAnnotation, Address>
更改为implements ConstraintValidator<AddressAnnotation, Object>
- 在
isValid
方法中使用反射获取开始和结束日期的实际值。