Java註解總結
閱讀文字之前,強烈推薦先閱讀此文ofollow,noindex">《Java註解是怎麼成功上位的?》 ,作者寫的真是精彩!令人非常佩服。
GitRepository\SelfFlying\source\_posts\Java註解總結\Java註解思維導圖.jpg"/>
Java 註解又稱為是 Java 標註,它是一種描述 Java 原始碼的特殊語法和元資料,對於 Java 中的註解,有人稱為是增強版的註釋,有人稱之為一種特殊的配置方式,這些理解都是從註解的作用上來說的。大多數 Java 程式設計者應該都用過註解,Java 中定義了一些註解,也定義了用來自定義註解的元註解。
Java 註解的分類如下:
1、已經定義好的註解:可以稱為是普通註解,包括 Java 自帶的,如 @Override,第三方框架(庫)定義的,如 Spring 裡面的 @Autowired,當然我麼也可以自定義一些我們要用的註解。
2、用來定義註解的元註解:可以稱為是特殊註解,如何定義一個註解的方法。
普通註解在 java.lang 包下,而特殊註解在 java.lang.annotation 包中。Java 5 開始支援註解,引入了 @Override、@Deprecated、@SuppressWarnings,Java 7 又引入了 @SafeVarargs,Java 8 又新增了 @FunctionalInterface、@Repeatable;Java 5 就引入了 @Retention、@Documented、@Target、@Inherited 四個元註解,Java 8 又引入了 @Native 和 @Repeatable 註解。下面來詳細介紹一下這些註解。
普通註解:
-
@Override:檢查該方法是否是重寫方法。如果發現其父類,或者是引用的介面中並沒有該方法時,會報編譯錯誤,這個註解只是起到一個提示的作用,表明這個方法是被 override 了。
-
@Deprecated:標記過時方法。如果使用該方法,會報編譯警告,這個註解是提醒開發者最好不要使用這個方法了,強制使用,IDE 會給該方法加上刪除線。
-
@SuppressWarnings:指示編譯器忽略註解中宣告的警告,有程式碼潔癖的,看著警告非常不爽,可以在任何地方加上該註解,這樣就忽略這些警告了。
-
@SafeVarargs:忽略任何使用引數為泛型變數的方法或建構函式呼叫產生的警告。
- @FunctionalInterface:標識一個匿名函式或函式式介面。
- @Repeatable:標識某註解可以在同一個宣告上使用多次。
元註解(特殊註解):
- @Retention:標識這個註解怎麼儲存,是隻在程式碼中,還是編入class檔案中,或者是在執行時可以通過反射訪問,用來定義註解的生命週期。
- @Documented:標記這些註解是否包含在使用者文件中,又該註解宣告的註解,在生成 JavaDoc 文件時會帶上這些註解。
- @Target:標記這個註解應該是哪種 Java 成員,表示註解可以用在什麼地方,類上,方法上、屬性上等等。
-
@Inherited:標記這個註解是繼承於哪個註解類(預設註解並沒有繼承於任何類)。
-
@Native:用來表示域中定義的常量可能來自於原生代碼。
註解的好處
- 有助於提高閱讀性。
- 和程式碼緊耦合