2010-06-28 106 views
3

是否可以強制(在編譯時)註釋類具有註釋字段?強制註釋類包含帶註釋字段

我有這樣的註解:

@Target(value = ElementType.TYPE) 
@interface MyClass {} 

@Target(value = ElementType.FIELD) 
@interface MyField {} 

,現在我想,像這樣一類編譯失敗:

@MyClass 
class Customer { 

} 

,而這應該工作:

@MyClass 
class Customer { 
    @MyField 
    String text; 
} 

回答

1

是的,使用apt(註釋處理工具)。

但是對於這樣簡單的任務,這將是一個矯枉過正。

您可以製作一些在應用程序啓動時觸發的偵聽器,並檢查此需求。

最後,您可以通過假定合理的默認值來避免這種情況 - 即,如果類是註釋的,那麼將所有註釋的字段都考慮爲默認值。

+0

你能舉一些聽衆的例子嗎? – 2013-11-26 16:47:02

+0

如果在webapp中:'public class StartupListener implements ServletContextListener' – Bozho 2013-12-03 17:31:48