java是什么 Java中的注解到底是如何工作的?
Java中的注解到底是如何工作的?注釋用于描述Java類(lèi)。您可以自定義注釋,然后通過(guò)反射獲取注釋以執(zhí)行指定的操作。舉個(gè)簡(jiǎn)單的例子這樣可以通過(guò)反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。當(dāng)然,這個(gè)自
Java中的注解到底是如何工作的?
注釋用于描述Java類(lèi)。您可以自定義注釋,然后通過(guò)反射獲取注釋以執(zhí)行指定的操作。
舉個(gè)簡(jiǎn)單的例子
這樣可以通過(guò)反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。
當(dāng)然,這個(gè)自定義注釋還取決于一些特定的注釋,我們稱之為元注釋。一共有五種:
@保留:生存周期保留策略.SOURCE
保持在源階段保留策略.CLASS
Compile
retention policy,runtime
@documented將注釋中的元素包含到Javadoc中
@target注釋可用于類(lèi)、方法、屬性、,等等]@繼承的
@可重復(fù)的可重復(fù)的
為啥國(guó)內(nèi)程序員寫(xiě)的代碼也用英文注釋?
1。英文注釋的意思更準(zhǔn)確
2。沒(méi)有亂碼問(wèn)題
3。沒(méi)有必要來(lái)回切換輸入法
4。國(guó)際要求
我認(rèn)為注解的流行主要是因?yàn)榉奖恪?/p>
它放棄了Java最困難的部分,配置了一堆配置文件和新類(lèi)。作為程序員,最直觀的是代碼,而不是配置文件。所以春靴自然就流行起來(lái)了。它完全可以通過(guò)代碼實(shí)現(xiàn)以前的配置,不需要配置文件。
那么注釋是如何工作的呢?首先,我們需要了解Java語(yǔ)言。Java是編譯和解釋之間的中間狀態(tài)(盡管Java嚴(yán)格地屬于編譯類(lèi)型)。Java使用。運(yùn)行過(guò)程中的類(lèi)文件。
這種方式使Java非常靈活,因此反射應(yīng)運(yùn)而生。它可以是無(wú)敵的。它可以通過(guò)反射動(dòng)態(tài)地創(chuàng)建類(lèi)對(duì)象,而不是使用傳統(tǒng)的新方法。
通過(guò)反射,您可以讀取類(lèi)中的每個(gè)方法、每個(gè)成員變量,甚至私有變量和方法。
然后,為了方便使用,我們將使用設(shè)計(jì)模式,單例模式。這種模式的優(yōu)點(diǎn)是,您只需要?jiǎng)?chuàng)建一次新對(duì)象,就永遠(yuǎn)不會(huì)再使用新對(duì)象。實(shí)際上,它也可以理解為靜態(tài)成員對(duì)象。我不會(huì)談?wù)撛O(shè)計(jì)模式。我自己去百度。
最后,注解的操作機(jī)制是反映類(lèi),動(dòng)態(tài)創(chuàng)建單例,注解后操作生效。那么誰(shuí)來(lái)識(shí)別注釋呢?這也是通過(guò)反射來(lái)實(shí)現(xiàn)的。定義注釋類(lèi)的要素類(lèi)
例如,它是這樣寫(xiě)的:
@demo
@retention(保留策略.RUNTIME)
@目標(biāo)(ElementType.ANNOTATIONType)
public@interface demo{
]這要求java根據(jù)類(lèi)上的注釋動(dòng)態(tài)實(shí)現(xiàn)函數(shù)。這不是很神奇嗎。
Java的注解為何如此流行?注解的工作原理是什么?
你太過(guò)分了,兄弟。你是個(gè)復(fù)仇者