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