是否可以在与属性相关的验证器中访问类的其他属性?现在,我有以下内容(用Kotlin表示法):
带注释的字段和相互依赖的字段:
@MyConstraint(message = "Not valid")
var myBigDecimal: BigDecimal? = null
var anotherBigDecimal: BigDecimal? = null
约束:
@Target(AnnotationTarget.FIELD)
@Retention(AnnotationRetention.RUNTIME)
@Constraint(validatedBy = [MyValidator::class])
annotation class MyConstraint(
val message: String = "Foo",
val groups: Array<KClass<out Any>> = arrayOf(),
val payload: Array<KClass<out Any>> = arrayOf()
)
验证者:
class MyValidator :
ConstraintValidator<MyConstraint, BigDecimal> {
override fun isValid(value: BigDecimal,
context: ConstraintValidatorContext): Boolean {
//right here I need to access 'anotherBigDecimal' // see above
}
我希望传递给isValid
的{{1}}方法的上下文包含该类的实例,但事实并非如此。我知道,我可以在类级别使用ConstraintValidator解决问题,但我想使其保持与属性相关。