gpt4 book ai didi

java - 约束 validator 根据父类中的另一个字段验证子类中的字段

转载 作者:行者123 更新时间:2023-12-02 01:48:37 24 4
gpt4 key购买 nike

我有 2 个域类,例如 ParentClassChildClass。(ParentClass 包含数组列表中的子类对象列表。)

我为 ParentClass 和 ChildClass 创建了单独的 Validator 类来执行自定义验证。

父类的示例 validator 类:

    public class ParentClassValidator implements 
ConstraintValidator<ValidatedByParentClassInterface, ParentClass> {

然后重写ConstraintValidatorisValid()方法,

    @Override
public boolean isValid(final ParentClass parentClass,
final ConstraintValidatorContext constraintValidatorContext) {

Child 类的示例 validator 类:

public class ChildClassValidator implements 
ConstraintValidator<ValidatedByChildClassInterface, ChildClass> {

然后重写ConstraintValidatorisValid()方法,

    @Override
public boolean isValid(final ChildClass childClass,
final ConstraintValidatorContext constraintValidatorContext) {
//No option to pass Parent class object here?

我的子类中的一个字段需要根据父类中的字段值进行验证。但是 ConstraintValidator( https://docs.oracle.com/javaee/7/api/javax/validation/ConstraintValidator.html ) 的 isValid() 方法只有 2 个参数,那么如何在 ChildClassValidator 中传递 ParentClass 对象呢?

或者我应该在 ParentClassValidator 中使用 for 循环来验证此场景吗?

最佳答案

看起来在我的 ParentClassValidator 中使用 for 循环来验证此场景是唯一可能的解决方案

因此,与其使用 2 个 validator ,即 1 个用于父类,1 个用于子类,不如将所有自定义验证(包括子类验证)放在父类 validator 中

关于java - 约束 validator 根据父类中的另一个字段验证子类中的字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57441856/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com