自Java5.0版本引入註解之後,它就成為了Java平台中非常重要的一部分。開發過程中,我們也時常在應用程式碼中會看到諸如@Override,@Deprecated這樣的註解。那什麼是註解?下面來跟大家介紹一下。
什麼是註解?
註解也叫元數據,也就是一種描述數據的數據。註解是JDK1.5版本開始引入的特性,用於對程式碼進行說明,可以對套件、類別、介面、欄位、方法參數、局部變數等進行註解。
註解有什麼用?
官方解釋:
註解是一系列元數據,它提供數據用來解釋程式碼,但是註解並非是所解釋的程式碼本身的一部分。註解對於程式碼的運作效果沒有直接影響。
1、提供資訊給編譯器: 編譯器可以利用註解來探測錯誤和警告訊息
例如@Override提示子類別要複寫父類別中被修飾的方法
2、編譯階段時的處理: 軟體工具可以用來利用註解資訊來產生程式碼、Html文件或做其它相應處理。
3、執行時期的處理: 某些註解可以在程式運行的時候接受程式碼的提取
# 註解主要針對的是編譯器和其它工具軟體;當開發者使用了Annotation在修飾了類別、方法、Field 等成員之後,這些Annotation 不會自己生效,必須由開發者提供對應的程式碼來提取並處理Annotation 資訊。這些處理提取和處理 Annotation 的程式碼統稱為 APT(Annotation Processing Tool)。
註解可分為三類:
● 一類是Java自帶的標準註解,包含@Override(標示重寫某個方法)、@Deprecated(標示某個類別或方法過時)和@SuppressWarnings(標示要忽略的警告),使用這些註解後編譯器就會進行檢查。
● 一類為元註解,元註解是用來定義註解的註解,包括@Retention(標明註解被保留的階段)、@Target(標明註解使用的範圍)、@Inherited(標明註解可繼承)、@Documented(標示是否產生javadoc文件)、@Repeatable。
● 一類為自訂註解,可以根據自己的需求定義註解
元註解
元註解是可以註解到註解上的註解,或者說元註解是一種基本註解,但是它能夠應用到其它的註解上面。明白點說,就是我們定義註解時用的註解就是元註解。
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Test { }
除了@符號,註解很像是一個介面。定義註解的時候需要用到元註解。
在註解中一般會有一些元素以表示某些值。註解的元素看起來就像是介面的方法,唯一的區別在於可以為其製定預設值。沒有元素的註解稱為標記註解,上面的@Test就是一個標記註解。
註解的可用的類型包括以下幾種:所有基本類型、String、Class、enum、Annotation、以上類型的陣列形式。元素不能有不確定的值,即要么有預設值,要么在使用註解的時候提供元素的值。而且元素不能使用null作為預設值。註解在只有一個元素且該元素的名稱是value的情況下,在使用註解的時候可以省略“value=”,直接寫需要的值即可。
元註解總共有5種,@Retention、@Documented、@Target、@Inherited、@Repeatable。
@Retention
英文意為保留期的意思。當 @Retention 應用在一個註解上的時候,它解釋說明了這個註解的存活時間。
@Documented
這個元註解肯定是跟文檔有關。它的作用是能夠將註解中的元素包含到Javadoc 中去
@Target
#目標的意思,@Target 指定了註解運用的地方
##@InheritedInherited 是繼承的意思,但是它並不是說註解本身可以繼承,而是說如果一個超類別被@Inherited 註解過的註解進行註解的話,那麼如果它的子類別沒有被任何註解應用的話,那麼這個子類別就繼承了超類別的註解@Repeatable#Repeatable 自然是可重複的意思。 @Repeatable 是 Java 1.8 才加進來的,所以算是新的特性。 推薦學習:以上是什麼是java註解?的詳細內容。更多資訊請關注PHP中文網其他相關文章!