色婷婷狠狠18禁久久YY,CHINESE性内射高清国产,国产女人18毛片水真多1,国产AV在线观看

Java中的注解到底是如何工作的

錢良釵2年前47瀏覽0評論

Java中的注解到底是如何工作的?

什么是注解

注解是在Java5.0版本中被引入,其目的是用于描述數(shù)據(jù),我們可以把他當(dāng)作標(biāo)簽,每加上一個注解就相當(dāng)于給類/方法/字段貼上來標(biāo)簽,而標(biāo)簽的作用我們很明白,通過標(biāo)簽我們可以知道這個類/方法/字段是做什么的。

為什么使用注解

在程序開發(fā)中,如果我們看到@Override,我們是很容易理解它的作用就是對實現(xiàn)方法的重寫,而這也達(dá)到設(shè)計之初的目標(biāo),即描述數(shù)據(jù)。

繼續(xù)以O(shè)verride為例子,我們在實現(xiàn)父類方法的時候通常會帶上該注解,但是我們不帶也不會對運行有任何影響,但是如果我們把注解放到非實現(xiàn)的方法上,編譯就會報錯。也就是說注解會告訴編譯我是做什么的,如果我做的和預(yù)期不一樣,那么編譯器會對我們程序進(jìn)行糾錯,即對不合注解含義的業(yè)務(wù)進(jìn)行處理(這個處理不是注解去處理,只是看上去像是注解的作用)。

注解如何工作

對于@Override使用在非父類方法上編譯報錯的情況,我們最初接觸的時候可能會認(rèn)為這些報錯的作用是注解的作用,但是實際上并不全是,這是因為注解僅僅是標(biāo)簽亦或者說是元數(shù)據(jù)。他的作用一開始僅僅是為類描述數(shù)據(jù),而后衍生出來的各種功能是由前端編譯器在編譯成class的時候會有一個專門的注解處理器,是他在編譯過程中對諸多注解,如@Override,會有專門的代碼完成@Override標(biāo)志的業(yè)務(wù)邏輯。簡單的說,注解只是標(biāo)簽,而標(biāo)簽具有的功能是由前端編譯器

在生成語法樹之后有專門的代碼去實現(xiàn)。

如果我們有使用自定義注解的經(jīng)驗,我們會發(fā)現(xiàn)如果我們單單定義一個注解放在類/方法/字段上,那么它只有一個標(biāo)簽的效果,并沒有什么實際的意義,比如我們自定義NotEmpty注解,表達(dá)不能為空,我們將其注解加入到字段上,即使傳空也沒有任何問題,這是因為沒有相應(yīng)業(yè)務(wù)的支持。如果想要達(dá)到想要的效果,我們就需要專門寫業(yè)務(wù)邏輯去實現(xiàn)這個NotEmpty功能

希望我的回答能對您有所幫助。

java中的注釋,Java中的注解到底是如何工作的