Java JSR303验证-确保字段具有特定的接口实现

Java JSR303验证-确保字段具有特定的接口实现,java,validation,bean-validation,Java,Validation,Bean Validation,我在寻找一些可能存在的东西,因此为什么我要问,而不仅仅是创造它 假设我有以下几点: public interface SillyInterface { public String name(); } public class SillyInterfaceImplA { public String name() { return "SillyImplA"; } } public class SillyInterfaceImplB { public

我在寻找一些可能存在的东西,因此为什么我要问,而不仅仅是创造它

假设我有以下几点:

public interface SillyInterface {
    public String name();
}

public class SillyInterfaceImplA {
    public String name() {
        return "SillyImplA";
    }
}

public class SillyInterfaceImplB {
    public String name() {
         return "SillyImplB";
    }
}
现在让我们假设我有以下POJO:

public class SillyPOJO {
    SillyInterface silly1;
    SillyInterface silly2;
}

是否存在任何注释(Hibernate或stock),这样我就可以确保获得对某个具体实现的引用(无需更改POJO以使silly1成为我希望的引用类型)?

Hibernate对JSR 303具有最佳的验证支持,您可以在此处查看所有注释:


您甚至可以为自己的验证例程编写自定义注释,尽管这对于您要做的事情来说是一项艰巨的工作。不幸的是,正如“matt b”所说,这只提供运行时支持,即使您编写了自定义的东西。

但是为什么不将java类更改为只引用所需的具体类型呢?您可以在编译时而不是运行时捕获错误。