javax 验证器 return 怎么可能不是空的,但仍然是空的约束列表?

How can the javax validator return a not null, but still empty, list of constraints?

我可以看到 javax 验证器返回了一个非空的约束列表。但是该列表包含 0 个元素。

怎么可能?

它与我的测试覆盖面背道而驰。

假设您指的是 Validator 上的各种 validate()validateValue() 等方法中的任何一种,返回空集 ConstraintViolation 表明所请求的验证成功,即没有违反约束。

返回空集合而不是 null 是避免调用方出现 NullPointerException 的常见最佳做法。在返回的集合上检查 isEmpty() 以了解验证是否成功。