gpt4 book ai didi

java - 确定类和属性约束 JSR303 bean 验证

转载 作者:太空宇宙 更新时间:2023-11-04 07:21:13 25 4
gpt4 key购买 nike

我正在开发一个通用插件,它有助于基于 JSR303 bean 验证来验证 bean。由于它需要是通用的,所以我不能依赖底层供应商的实现。

我需要从 ConstraintViolation 确定约束违规的类型目的。一种方法是使用ConstraintViolation#getPropertyPath()。如果 getName()leaf 节点上返回 null,则您具有类级别约束,否则具有属性级别约束。

一个选项就像

 Iterator<Node> violationNodes=violation.getPropertyPath().iterator();
Node leafNode=null;
while (violationNodes.hasNext()){
leafNode=violationNodes.next();
}

if(leafNode!=null){
// property constraint
}
else{
// class constraint
}

这是确定的好方法还是可以有其他有效或好的方法来做到这一点?

最佳答案

如果您正在使用 Bean Validation 1.0,那么依赖 Node#getName() 将是最佳选择(请注意,在 if 语句中它应该是 leafNode.getName() != null)。

Bean Validation 1.1 添加了一个方法 Node#getKind(),它返回不同元素类型的枚举,因此如果您已经使用 1.1,这将是更好的方法。

关于java - 确定类和属性约束 JSR303 bean 验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19292197/

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