●Java 自定義註解
創建自定義註解類似於編寫接口,不同之處在於interface關鍵字以@符號為前綴,可以在註解中聲明方法。
關於java註解的一些要點是:1.註解方法不能有參數。2.註釋方法返回類型僅限於原始類型、字符串、註釋或這些類型的數組。3.Java Annotation方法可以有默認值。4.註釋可以附有元註釋(meta annotations),元註釋用於提供有關註釋的訊息。
●java中的元註解有五種
1.@Documented:使用此註釋的元素要由javadoc和類似工具記錄,此類型應用於註釋類型聲明,這些類型的註釋會影響它的客戶端對帶註釋元素的使用,如果使用 Documented對類型聲明進行註釋,則其註釋將成為帶註釋元素公共API的一部分。
2.@Target:註釋類型適用的程序元素的種類,一些可能的值是類型、方法、構造函數、字段等,如果目標元註釋不存在,就可以在任何程序元素上使用註釋。
3.@Inherited:表示自動繼承註解類型,如果用戶在類聲明上查詢註解類型,並且類聲明沒有針對該類型的註解,則將自動查詢該類的超類以獲取註解類型,將重複此過程,直到找到此類型的註釋,或到達類層次結構的頂部。
4.@Retention:帶有註釋類型的註釋將保留長時間,它採用RetentionPolicy參數,其可能的值為SOURCE、CLASS和RUNTIME。
5.@Repeatable:用於指示其註釋的註釋類型是可重複的。
●Java 中的內置註解
1.@Override:想要覆蓋超類方法時,就應該使用這個註解來通知編譯器我們正在覆蓋一個方法,因此,當移除或更改超類方法時,編譯器將顯示錯誤消息。
2.@Deprecated:希望編譯器知道某個方法已被棄用時,應該使用這個註解,Java建議在javadoc中,我們應該提供有關為什麼不推薦使用此方法以及可以使用的替代方法的信息。
3.@SuppressWarnings:這只是告訴編譯器忽略它們產生的特定警告,例如在java generics 中使用原始類型,它的保留策略是SOURCE,會被編譯器丟棄。
4.@FunctionalInterface:這個註解是在Java 8中引入的,以表明該接口想要成為一個功能接口。
5.@SafeVarargs:程序員表示帶註釋的方法或構造函數的主體不會對其varargs參數執行潛在的不安全操作。