2011-07-14 31 views
1

我在寻找一些东西,可能是在那里,因此为什么我问,不只是创造它...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; 
} 

有任何注释(休眠或股票)的存在,这样我可以保证我得到一个参考因为某种具体的实现(没有改变我的POJO来使傻子1成为我所希望的那种引用类型)?

+0

但是,为什么不改变你的java类只是指你想要的具体类型呢?您可以在编译时而不是运行时捕获错误。 –

回答

0

Hibernate对JSR 303的最佳验证支持,你可以在这里查看所有的注解:

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

你甚至可以写自己的验证程序自定义的注释,虽然这是一个很大为你正在尝试做的工作而努力。不幸的是,就像“matt b”所说的那样,这只会给你运行时支持,即使你写了一些自定义的东西。