自Java5.0版本引入注解之后,它就成為了Java平臺中十分重要的一局部。開發(fā)過程中,我們也經(jīng)常在應(yīng)用代碼中會看到諸如@Override,@Deprecated這樣的注解。
這篇文章中,我將向大家講述到底什么是注解,為什么要引入注解,注解是如何工作的,如何編寫自定義的注解(經(jīng)過例子),什么狀況下能夠運用注解以及最新注解和ADF(應(yīng)用開發(fā)框架)。這會花點兒時間,所以為本人準(zhǔn)備一杯咖啡,讓我們來進(jìn)入注解的世界吧。
Java中的注解是如何工作的?
什么是注解?
用一個詞就能夠描繪注解,那就是元數(shù)據(jù),即一種描繪數(shù)據(jù)的數(shù)據(jù)。所以,能夠說注解就是源代碼的元數(shù)據(jù)。比方,下面這段代碼:
@Override
publicStringtoString(){
return”ThisisStringRepresentationofcurrentobject.”;
}
上面的代碼中,我重寫了toString()辦法并運用了@Override注解。但是,即便我不運用@Override注解標(biāo)志代碼,程序也可以正常執(zhí)行。那么,該注解表示什么?這么寫有什么益處嗎?事實上,@Override通知編譯器這個辦法是一個重寫辦法(描繪辦法的元數(shù)據(jù)),假如父類中不存在該辦法,編譯器便會報錯,提示該辦法沒有重寫父類中的辦法。
假如我不當(dāng)心拼寫錯誤,例如將toString()寫成了toStrring(){doubler},而且我也沒有運用@Override注解,那程序仍然能編譯運轉(zhuǎn)。但運轉(zhuǎn)結(jié)果會和我希冀的大不相同。如今我們理解了什么是注解,并且運用注解有助于閱讀程序。
Annotation是一種應(yīng)用于類、辦法、參數(shù)、變量、結(jié)構(gòu)器及包聲明中的特殊修飾符。它是一種由JSR-175規(guī)范選擇用來描繪元數(shù)據(jù)的一種工具。
為什么要引入注解?
運用Annotation之前(以至在運用之后),XML被普遍的應(yīng)用于描繪元數(shù)據(jù)。不知何時開端一些應(yīng)用開發(fā)人員和架構(gòu)師發(fā)現(xiàn)XML的維護(hù)越來越糟糕了。他們希望運用一些和代碼緊耦合的東西,而不是像XML那樣和代碼是松耦合的(在某些狀況下以至是完整別離的)代碼描繪。
假如你在Google中搜索“XMLvs.annotations”,會看到許多關(guān)于這個問題的爭辯。最有趣的是XML配置其實就是為了別離代碼和配置而引入的。上述兩種觀念可能會讓你很疑惑,兩者觀念似乎構(gòu)成了一種循環(huán),但各有利害。下面我們經(jīng)過一個例子來了解這兩者的區(qū)別。
假設(shè)你想為應(yīng)用設(shè)置很多的常量或參數(shù),這種狀況下,XML是一個很好的選擇,由于它不會同特定的代碼相連。假如你想把某個辦法聲明為效勞,那么運用Annotation會更好一些,由于這種狀況下需求注解和辦法嚴(yán)密耦合起來,開發(fā)人員也必需認(rèn)識到這點。
另一個很重要的要素是Annotation定義了一種規(guī)范的描繪元數(shù)據(jù)的方式。在這之前,開發(fā)人員通常運用他們本人的方式定義元數(shù)據(jù)。例如,運用標(biāo)志interfaces,注釋,transient關(guān)鍵字等等。每個程序員依照本人的方式定義元數(shù)據(jù),而不像Annotation這種規(guī)范的方式。
目前,許多框架將XML和Annotation兩種方式分離運用,均衡兩者之間的利害。
廣州天河區(qū)珠江新城富力盈力大廈北塔2706
020-38013166(網(wǎng)站咨詢專線)
400-001-5281 (售后服務(wù)熱線)
深圳市坂田十二橡樹莊園F1-7棟
Site/ http://www.szciya.com
E-mail/ itciya@vip.163.com
品牌服務(wù)專線:400-001-5281
長沙市天心區(qū)芙蓉中路三段398號新時空大廈5樓
聯(lián)系電話/ (+86 0731)88282200
品牌服務(wù)專線/ 400-966-8830
旗下運營網(wǎng)站:
Copyright ? 2016 廣州思洋文化傳播有限公司,保留所有權(quán)利。 粵ICP備09033321號