建立自定義註解和建立一個接口類似,可是註解的interface關鍵字須要以@符號開頭。咱們能夠爲註解聲明方法。咱們先來看看註解的例子,而後咱們將討論他的一些特性。java
@Documented @Target(ElementType.METHOD) @Inherited @Retention(RetentionPolicy.RUNTIME) public @interface MethodInfo{ String author() default 'Pankaj'; String date(); int revision() default 1; String comments(); }
這裏有四種類型的元註解:數組
1. @Documented —— 指明擁有這個註解的元素能夠被javadoc此類的工具文檔化。這種類型應該用於註解那些影響客戶使用帶註釋的元素聲明的類型。若是一種聲明使用Documented進行註解,這種類型的註解被做爲被標註的程序成員的公共API。ide
2. @Target——指明該類型的註解能夠註解的程序元素的範圍。該元註解的取值能夠爲TYPE,METHOD,CONSTRUCTOR,FIELD等。若是Target元註解沒有出現,那麼定義的註解能夠應用於程序的任何元素。工具
3. @Inherited——指明該註解類型被自動繼承。若是用戶在當前類中查詢這個元註解類型而且當前類的聲明中不包含這個元註解類型,那麼也將自動查詢當前類的父類是否存在Inherited元註解,這個動做將被重複執行知道這個標註類型被找到,或者是查詢到頂層的父類。.net
4.@Retention——指明瞭該Annotation被保留的時間長短。RetentionPolicy取值爲SOURCE,CLASS,RUNTIME。code
Java內建註解繼承
Java提供了三種內建註解。接口
1. @Override——當咱們想要複寫父類中的方法時,咱們須要使用該註解去告知編譯器咱們想要複寫這個方法。這樣一來當父類中的方法移除或者發生更改時編譯器將提示錯誤信息。文檔
2. @Deprecated——當咱們但願編譯器知道某一方法不建議使用時,咱們應該使用這個註解。Java在javadoc 中推薦使用該註解,咱們應該提供爲何該方法不推薦使用以及替代的方法。get
3. @SuppressWarnings——這個僅僅是告訴編譯器忽略特定的警告信息,例如在泛型中使用原生數據類型。它的保留策略是SOURCE(譯者注:在源文件中有效)而且被編譯器丟棄。