给出以下类和接口
class Person {
@NotNull(groups=Both.class)
private String name;
}
验证群组:
interface One {}
interface Two {}
interface Both extends One, Two {}
致电
Person person = new Person();
validator.validate(person, One.class)
或
validator.validate(person, Two.class)
我希望它应该是无效的,因为name为null但它没有。 事实证明,只有在validator.validate(...,Both.class)方法中使用时,Both.class组才有用。
答案 0 :(得分:4)
你的继承方向错误。 Both
群组延伸One
和Two
您可能会将其视为" Both
包含One
和Two
" 。这意味着,每次您对Both
组进行验证时,组One
和Two
的所有约束也都包含在Both
中,因此会经过验证。
但反之则不然:属于组Both
的约束不属于One
,也不属于Two
。因此,如果您验证组One
的约束,则属于两者的约束将无法验证。