自Java5.0版本引入注解之后,它就成為了Java平臺中非常重要的一部分。開發過程中,我們也時常在應用代碼中會看到諸如@Override,@Deprecated這樣的注解。那么什么是注解?下面給大家介紹一下。
創新互聯長期為上1000家客戶提供的網站建設服務,團隊從業經驗10年,關注不同地域、不同群體,并針對不同對象提供差異化的產品和服務;打造開放共贏平臺,與合作伙伴共同營造健康的互聯網生態環境。為新安企業提供專業的成都做網站、成都網站建設,新安網站改版等技術服務。擁有十載豐富建站經驗和眾多成功案例,為您定制開發。什么是注解?
注解也叫元數據,即一種描述數據的數據。注解是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 指定了注解運用的地方
@Inherited
Inherited 是繼承的意思,但是它并不是說注解本身可以繼承,而是說如果一個超類被 @Inherited 注解過的注解進行注解的話,那么如果它的子類沒有被任何注解應用的話,那么這個子類就繼承了超類的注解
@Repeatable
Repeatable 自然是可重復的意思。@Repeatable 是 Java 1.8 才加進來的,所以算是一個新的特性。
以上就是什么是java注解?的詳細內容,更多請關注創新互聯其它相關文章!
分享題目:java的注解介紹-創新互聯
當前鏈接:http://m.newbst.com/article10/dcdcgo.html
成都網站建設公司_創新互聯,為您提供網站排名、建站公司、網站導航、搜索引擎優化、網頁設計公司、App設計
聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯