Bean Validation应用于接口类型

时间:2013-12-11 15:13:39

标签: 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?

此处的方案已简化。实际上,我有不同的通用类和接口,这意味着一点的工作。这就是为什么我要仔细询问。

希望有一位专家在附近徘徊!

提前致谢!

1 个答案:

答案 0 :(得分:1)

Bean Validation将从已验证实例的实际类型获取约束,即您可以传递接口类型的变量,Bean Validation将考虑实现中的约束(在超类型和接口上声明的约束也适用) )。