2011-07-14 32 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」所說的那樣,這隻會給你運行時支持,即使你寫了一些自定義的東西。