使用 ConstraintValidator 的两种类型的自定义 bean 验证

问题描述

我正在学习本教程 https://www.baeldung.com/spring-mvc-custom-validator

我现在面临的情况是,我有两种不同的类型,一种是 List<String>,另一种属于其他不同的类,类型为 Set<String>

而且我想使用正则表达式检查它们内部的字符串元素的验证。 ^[a-z0-9]+[-_]*[a-z0-9]*$

因此,与其使用两个 bean 验证注释,不如使用 List<String>

implements 
  ConstraintValidator<ContactNumberConstraint,List<String>>

一个Set<String>

implements 
  ConstraintValidator<ContactNumberConstraint,Set<String>>

是否可以让一个类同时接受这两种类型?如果是,代码片段对我很有帮助

解决方法

由于 ListSet 都是 Collection 并且您不关心其实现的细节(您只想遍历元素并验证它们),您可以简单地使用implements ConstraintValidator<ContactNumberConstraint,Collection<String>>