java注解到底有什么用 Java中的注解到底是如何工作的?
Java中的注解到底是如何工作的?注釋用于描述Java類。您可以自定義注釋,然后通過(guò)反射獲取注釋以執(zhí)行指定的操作。舉個(gè)簡(jiǎn)單的例子這樣可以通過(guò)反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。當(dāng)然,這個(gè)自
Java中的注解到底是如何工作的?
注釋用于描述Java類。您可以自定義注釋,然后通過(guò)反射獲取注釋以執(zhí)行指定的操作。
舉個(gè)簡(jiǎn)單的例子
這樣可以通過(guò)反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。
當(dāng)然,這個(gè)自定義注釋還取決于一些特定的注釋,我們稱之為元注釋。一共有五種:
@保留:生存周期保留策略.SOURCE
保持在源階段保留策略.CLASS
Compile
retention policy,runtime
@documented將注釋中的元素包含到Javadoc中
@target注釋可用于類、方法、屬性、,等]@繼承的
@可重復(fù)的可重復(fù)的
我在日常生活中使用的主要語(yǔ)言是C和Java。在語(yǔ)法方面,寫C#更有趣。主要原因是C#有更多的語(yǔ)法糖,而且LINQ非常容易使用。其次,visualstudio被稱為世界上第一個(gè)ide。但個(gè)人更喜歡Java。
從java8出來(lái)后,我覺(jué)得Java正在追趕C#,Java和C#的語(yǔ)法越來(lái)越相似(原來(lái)很相似,哈哈)。這里有一些比較。
在java8中添加lambda表達(dá)式后,我感覺(jué)越來(lái)越像C。
1. 當(dāng)然,首先要看收入。在中國(guó),基本上沒(méi)有使用C的大公司。最初,攜程在使用它,但后來(lái),它也轉(zhuǎn)向了Java。
2. 從技術(shù)的角度來(lái)看,有很多優(yōu)秀的框架可以使用,因?yàn)镴ava可以制造很多輪子。在實(shí)際項(xiàng)目中你遇到問(wèn)題,別人一定遇到過(guò),能找到問(wèn)題的關(guān)鍵。
3. 從生態(tài)學(xué)的角度來(lái)看,Java無(wú)疑是最好的選擇之一,因?yàn)樗拈_源較早,建立生態(tài)學(xué)的時(shí)間也較早。
4. 在性能方面,sun/Oracle熱點(diǎn)JVM內(nèi)置的JIT編譯器在運(yùn)行時(shí)對(duì)字節(jié)碼進(jìn)行了優(yōu)化。如果它不是一個(gè)性能敏感的應(yīng)用程序,Java就足夠了。
謝謝。
Java的哪個(gè)語(yǔ)法特性讓你覺(jué)得寫Java代碼很享受?
我認(rèn)為注解的流行主要是因?yàn)榉奖恪?/p>
它放棄了Java最困難的部分,配置了一堆配置文件和新類。作為程序員,最直觀的是代碼,而不是配置文件。所以春靴自然就流行起來(lái)了。它完全可以通過(guò)代碼實(shí)現(xiàn)以前的配置,不需要配置文件。
那么注釋是如何工作的呢?首先,我們需要了解Java語(yǔ)言。Java是編譯和解釋之間的中間狀態(tài)(盡管Java嚴(yán)格地屬于編譯類型)。Java使用。運(yùn)行過(guò)程中的類文件。
這種方式使Java非常靈活,因此反射應(yīng)運(yùn)而生。它可以是無(wú)敵的。它可以通過(guò)反射動(dòng)態(tài)地創(chuàng)建類對(duì)象,而不是使用傳統(tǒng)的新方法。
通過(guò)反射,您可以讀取類中的每個(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ī)制是反映類,動(dòng)態(tài)創(chuàng)建單例,注解后操作生效。那么誰(shuí)來(lái)識(shí)別注釋呢?這也是通過(guò)反射來(lái)實(shí)現(xiàn)的。定義注釋類的要素類
例如,它是這樣寫的:
@demo
@retention(保留策略.RUNTIME)
@目標(biāo)(ElementType.ANNOTATIONType)
public@interface demo{
]這要求java根據(jù)類上的注釋動(dòng)態(tài)實(shí)現(xiàn)函數(shù)。這不是很神奇嗎。