自Java5.0版本引入注解之后,它就成為了Java平臺(tái)中非常重要的一部分。開發(fā)過程中,我們也時(shí)常在應(yīng)用代碼中會(huì)看到諸如@Override,@Deprecated這樣的注解。那么什么是注解?下面給大家介紹一下。
創(chuàng)新互聯(lián)長期為上1000家客戶提供的網(wǎng)站建設(shè)服務(wù),團(tuán)隊(duì)從業(yè)經(jīng)驗(yàn)10年,關(guān)注不同地域、不同群體,并針對(duì)不同對(duì)象提供差異化的產(chǎn)品和服務(wù);打造開放共贏平臺(tái),與合作伙伴共同營造健康的互聯(lián)網(wǎng)生態(tài)環(huán)境。為新安企業(yè)提供專業(yè)的成都做網(wǎng)站、成都網(wǎng)站建設(shè),新安網(wǎng)站改版等技術(shù)服務(wù)。擁有十載豐富建站經(jīng)驗(yàn)和眾多成功案例,為您定制開發(fā)。什么是注解?
注解也叫元數(shù)據(jù),即一種描述數(shù)據(jù)的數(shù)據(jù)。注解是JDK1.5版本開始引入的一個(gè)特性,用于對(duì)代碼進(jìn)行說明,可以對(duì)包、類、接口、字段、方法參數(shù)、局部變量等進(jìn)行注解。
注解有什么用?
官方解釋:
注解是一系列元數(shù)據(jù),它提供數(shù)據(jù)用來解釋程序代碼,但是注解并非是所解釋的代碼本身的一部分。注解對(duì)于代碼的運(yùn)行效果沒有直接影響。
1、提供信息給編譯器: 編譯器可以利用注解來探測錯(cuò)誤和警告信息
比如 @Override提示子類要復(fù)寫父類中被 修飾的方法
2、編譯階段時(shí)的處理: 軟件工具可以用來利用注解信息來生成代碼、Html文檔或者做其它相應(yīng)處理。
3、運(yùn)行時(shí)的處理: 某些注解可以在程序運(yùn)行的時(shí)候接受代碼的提取
注解主要針對(duì)的是編譯器和其它工具軟件;當(dāng)開發(fā)者使用了Annotation 修飾了類、方法、Field 等成員之后,這些 Annotation 不會(huì)自己生效,必須由開發(fā)者提供相應(yīng)的代碼來提取并處理 Annotation 信息。這些處理提取和處理 Annotation 的代碼統(tǒng)稱為 APT(Annotation Processing Tool)。
注解可分為三類:
● 一類是Java自帶的標(biāo)準(zhǔn)注解,包括@Override(標(biāo)明重寫某個(gè)方法)、@Deprecated(標(biāo)明某個(gè)類或方法過時(shí))和@SuppressWarnings(標(biāo)明要忽略的警告),使用這些注解后編譯器就會(huì)進(jìn)行檢查。
● 一類為元注解,元注解是用于定義注解的注解,包括@Retention(標(biāo)明注解被保留的階段)、@Target(標(biāo)明注解使用的范圍)、@Inherited(標(biāo)明注解可繼承)、@Documented(標(biāo)明是否生成javadoc文檔)、@Repeatable。
● 一類為自定義注解,可以根據(jù)自己的需求定義注解
元注解
元注解是可以注解到注解上的注解,或者說元注解是一種基本注解,但是它能夠應(yīng)用到其它的注解上面。明白點(diǎn)說,就是我們定義注解時(shí)用的注解就是元注解。
@Target(ElementType.METHOD) @Retention(RetentionPolicy.RUNTIME) public @interface Test { }
除了@符號(hào),注解很像是一個(gè)接口。定義注解的時(shí)候需要用到元注解。
在注解中一般會(huì)有一些元素以表示某些值。注解的元素看起來就像接口的方法,唯一的區(qū)別在于可以為其制定默認(rèn)值。沒有元素的注解稱為標(biāo)記注解,上面的@Test就是一個(gè)標(biāo)記注解。
注解的可用的類型包括以下幾種:所有基本類型、String、Class、enum、Annotation、以上類型的數(shù)組形式。元素不能有不確定的值,即要么有默認(rèn)值,要么在使用注解的時(shí)候提供元素的值。而且元素不能使用null作為默認(rèn)值。注解在只有一個(gè)元素且該元素的名稱是value的情況下,在使用注解的時(shí)候可以省略“value=”,直接寫需要的值即可。
元注解一共有5種, @Retention、@Documented、@Target、@Inherited、@Repeatable。
@Retention
英文意為保留期的意思。當(dāng) @Retention 應(yīng)用到一個(gè)注解上的時(shí)候,它解釋說明了這個(gè)注解的的存活時(shí)間。
@Documented
這個(gè)元注解肯定是和文檔有關(guān)。它的作用是能夠?qū)⒆⒔庵械脑匕?Javadoc 中去
@Target
目標(biāo)的意思,@Target 指定了注解運(yùn)用的地方
@Inherited
Inherited 是繼承的意思,但是它并不是說注解本身可以繼承,而是說如果一個(gè)超類被 @Inherited 注解過的注解進(jìn)行注解的話,那么如果它的子類沒有被任何注解應(yīng)用的話,那么這個(gè)子類就繼承了超類的注解
@Repeatable
Repeatable 自然是可重復(fù)的意思。@Repeatable 是 Java 1.8 才加進(jìn)來的,所以算是一個(gè)新的特性。
以上就是什么是java注解?的詳細(xì)內(nèi)容,更多請(qǐng)關(guān)注創(chuàng)新互聯(lián)其它相關(guān)文章!
分享題目:java的注解介紹-創(chuàng)新互聯(lián)
當(dāng)前鏈接:http://www.rwnh.cn/article10/dcdcgo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站排名、建站公司、網(wǎng)站導(dǎo)航、搜索引擎優(yōu)化、網(wǎng)頁設(shè)計(jì)公司、App設(shè)計(jì)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容