问题很短:
让我们考虑有以下类:
public class someClass implements someInterface {
@NotNull
String someString;
// ... some cool logic, getters, setters, etc.
}
这个界面:
public interface SomeInterface {
// cool stuff
}
其他地方还有这个方法:
public <T extends SomeInterface> T doStuff (T someInterface) {
Validator validator = Validation.buildDefaultValidatorFactory().getValidator();
Set<ConstraintViolation<T>> violatons = validator.validate();
// ...
// ...
// ...
return someInterface;
}
我对 BV 没有太多经验。 SomeClass 中的 someString 是否会被验证,或者我是否需要显式地将 someInterface 转换为 SomeClass?
这里的场景被简化了。实际上,我有不同的通用类和接口(interface),这意味着需要一些工作。这就是为什么我要仔细询问。
希望有一位专家在附近!
提前致谢!
最佳答案
Bean Validation 将从已验证实例的实际类型中获取约束,即您可以传递接口(interface)类型的变量,并且 Bean Validation 将考虑实现中的约束(在父类(super class)型和接口(interface)上声明的约束也适用) )。
关于java - Bean 验证应用于接口(interface)类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20522758/