java注解怎么傳入變量 Java中的注解到底是如何工作的?
Java中的注解到底是如何工作的?注釋用于描述Java類(lèi)。您可以自定義注釋?zhuān)缓笸ㄟ^(guò)反射獲取注釋以執(zhí)行指定的操作。舉個(gè)簡(jiǎn)單的例子這樣可以通過(guò)反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。當(dāng)然,這個(gè)自
Java中的注解到底是如何工作的?
注釋用于描述Java類(lèi)。您可以自定義注釋?zhuān)缓笸ㄟ^(guò)反射獲取注釋以執(zhí)行指定的操作。
舉個(gè)簡(jiǎn)單的例子
這樣可以通過(guò)反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。
當(dāng)然,這個(gè)自定義注釋還取決于一些特定的注釋?zhuān)覀兎Q(chēng)之為元注釋。一共有五種:
@保留:生存周期保留策略.SOURCE
保持在源階段保留策略.CLASS
Compile
retention policy,runtime
@documented將注釋中的元素包含到Javadoc中
@target注釋可用于類(lèi)、方法、屬性、,等等]@繼承的
@可重復(fù)的可重復(fù)的
我知道1。首先獲取這個(gè)類(lèi)的classClass> objclass=t.getclass()2。獲取位于的此類(lèi)字段[]的字段屬性objclass.getDeclaredFields() 3. 遍歷(field FD:at){//的所有字段例如,如果(fd.I注釋存在( NotNull.class類(lèi))){//通過(guò)這種方式,獲得注釋屬性notnull D=fd.getAnnotation注釋( NotNull.class類(lèi))}} 4. 要獲取注釋?zhuān)紫刃枰@取其字段。希望對(duì)你有幫助
!~]//定義注解并將Java注解保留策略指定為運(yùn)行時(shí),在運(yùn)行時(shí)將其注入Java字節(jié)碼文件//只有這樣才能在運(yùn)行時(shí)進(jìn)行反射和獲取。@ java.lang.annotation注釋.保留(java.lang.annotation注釋. 保留策略.RUNTIME)@接口myannotation{tstring key()default “”-tint value()default 0}//使用annotation@myannotation(key=“key1”,value=200)class MyClass{}//reflect annotation public static void main(string[]args){MyClass MyClass=new MyClass()myannotation annotation=myClass.getClass類(lèi)().getAnnotation(MyAnnotation.class類(lèi)) 系統(tǒng)輸出打印(“鍵=”注釋.key()“t值=”注釋.值())}