這篇文章將為大家詳細(xì)講解有關(guān)java類(lèi)中有注解的原因,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。
創(chuàng)新互聯(lián)致力于互聯(lián)網(wǎng)品牌建設(shè)與網(wǎng)絡(luò)營(yíng)銷(xiāo),包括成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、SEO優(yōu)化、網(wǎng)絡(luò)推廣、整站優(yōu)化營(yíng)銷(xiāo)策劃推廣、電子商務(wù)、移動(dòng)互聯(lián)網(wǎng)營(yíng)銷(xiāo)等。創(chuàng)新互聯(lián)為不同類(lèi)型的客戶提供良好的互聯(lián)網(wǎng)應(yīng)用定制及解決方案,創(chuàng)新互聯(lián)核心團(tuán)隊(duì)10年專(zhuān)注互聯(lián)網(wǎng)開(kāi)發(fā),積累了豐富的網(wǎng)站經(jīng)驗(yàn),為廣大企業(yè)客戶提供一站式企業(yè)網(wǎng)站建設(shè)服務(wù),在網(wǎng)站建設(shè)行業(yè)內(nèi)樹(shù)立了良好口碑。
從JDK5開(kāi)始,Java增加對(duì)元數(shù)據(jù)的支持,也就是注解,注解與注釋是有一定區(qū)別的,可以把注解理解為代碼里的特殊標(biāo)記,這些標(biāo)記可以在編譯,類(lèi)加載,運(yùn)行時(shí)被讀取,并執(zhí)行相應(yīng)的處理。通過(guò)注解開(kāi)發(fā)人員可以在不改變?cè)写a和邏輯的情況下在源代碼中嵌入補(bǔ)充信息。
什么是注解
注解,可以看作是對(duì) 一個(gè) 類(lèi)/方法 的一個(gè)擴(kuò)展的模版,每個(gè) 類(lèi)/方法 按照注解類(lèi)中的規(guī)則,來(lái)為 類(lèi)/方法 注解不同的參數(shù),在用到的地方可以得到不同的 類(lèi)/方法 中注解的各種參數(shù)與值
注解也就是Annotation,相信不少人也和我之前一樣以為和注釋和doc一樣,是一段輔助性的文字,其實(shí)注解不是這樣的。
從JDK5開(kāi)始,java增加了對(duì)元數(shù)據(jù)(描述數(shù)據(jù)屬性的信息)的支持。其實(shí)說(shuō)白就是代碼里的特殊標(biāo)志,這些標(biāo)志可以在編譯,類(lèi)加載,運(yùn)行時(shí)被讀取,并執(zhí)行相應(yīng)的處理,以便于其他工具補(bǔ)充信息或者進(jìn)行部署。
Annotation(注解)它可以用于創(chuàng)建文檔,跟蹤代碼中的依賴(lài)性,甚至執(zhí)行基本編譯時(shí)檢查。從某些方面看,annotation就像修飾符一樣被使用,并應(yīng)用于包、類(lèi) 型、構(gòu)造方法、方法、成員變量、參數(shù)、本地變量的聲明中。這些信息被存儲(chǔ)在Annotation的“name=value”結(jié)構(gòu)對(duì)中。
Annotation的成員在Annotation類(lèi)型中以無(wú)參數(shù)的方法的形式被聲明。其方法名和返回值定義了該成員的名字和類(lèi)型。
在此有一個(gè)特定的默認(rèn)語(yǔ)法:
允許聲明任何Annotation成員的默認(rèn)值:一個(gè)Annotation可以將name=value對(duì)作為沒(méi)有定義默認(rèn)值的Annotation成員的值,當(dāng)然也可以使用name=value對(duì)來(lái)覆蓋其它成員默認(rèn)值。這一點(diǎn)有些近似類(lèi)的繼承特性,父類(lèi)的構(gòu)造函數(shù)可以作為子類(lèi)的默認(rèn)構(gòu)造函數(shù),但是也可以被子類(lèi)覆蓋。
Annotation能被用來(lái)為某個(gè)程序元素(類(lèi)、方法、成員變量等)關(guān)聯(lián)任何的信息。
需要注意的是,這里存在著一個(gè)基本的規(guī)則:
Annotation不能影響程序代碼的執(zhí)行,無(wú)論增加、刪除 Annotation,代碼都始終如一的執(zhí)行。
另外,盡管一些annotation通過(guò)java的反射api方法在運(yùn)行時(shí)被訪問(wèn),而java語(yǔ)言解釋器在工作時(shí)忽略了這些annotation。正是由于java虛擬機(jī)忽略了Annotation,導(dǎo)致了annotation類(lèi)型在代碼中是“不起作用”的;
只有通過(guò)某種配套的工具才會(huì)對(duì)annotation類(lèi)型中的信息進(jìn)行訪問(wèn)和處理。
注解的意義
為編譯器提供輔助信息 — Annotations可以為編譯器提供而外信息,以便于檢測(cè)錯(cuò)誤,抑制警告等.
編譯源代碼時(shí)進(jìn)行而外操作 — 軟件工具可以通過(guò)處理Annotation信息來(lái)生成原代碼,xml文件等等.
運(yùn)行時(shí)處理 — 有一些annotation甚至可以在程序運(yùn)行時(shí)被檢測(cè),使用.
總之,注解是一種元數(shù)據(jù),起到了”描述,配置“的作用。
關(guān)于java類(lèi)中有注解的原因就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。