java - Bean 验证应用于接口(interface)类型

标签 java validation generics bean-validation

问题很短:

让我们考虑有以下类:

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/

相关文章:

java - 谁来加载 java.lang.ClassLoader?

Tomcat8 中的应用程序重新加载期间,java.lang.UnsatisfiedLinkError native 库已加载到另一个类加载器中

c++ - 仅允许在 QDoubleValidator 的范围内进入 QLineEdit

Java通用容器工厂

java - 如何编写一个通过hibernate插入而没有任何依赖的通用类

java - 在 SQL 中更新查询,在 Java 上运行时出现语法错误

java - 我得到了 org.hibernate.hql.internal.ast.QuerySyntaxException : is not mapped exception

jQuery 表单验证未启动

javascript - 由于 Facebook Connect 代码中存在单个字符,验证失败

C# 泛型 : List<Object> or new class extends List <Object>