JSR 303验证——确保字段是特定的接口实现



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

假设我有以下内容:

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以使sily1成为我希望的引用类型)?

Hibernate对JSR 303有最好的验证支持,您可以在这里查看所有注释:

http://docs.jboss.org/hibernate/validator/4.2/reference/en-US/html_single/d0e332

您甚至可以为您自己的验证例程编写自定义注释,尽管这对于您想要做的事情来说是大量的工作。不幸的是,就像"matt b"所说的,这只给你运行时支持,即使你写了一些自定义的东西。

最新更新