java獲取注解標(biāo)注的方法 Java中的注解到底是如何工作的?
Java中的注解到底是如何工作的?注釋用于描述Java類。您可以自定義注釋,然后通過反射獲取注釋以執(zhí)行指定的操作。舉個簡單的例子這樣可以通過反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。當(dāng)然,這個自
Java中的注解到底是如何工作的?
注釋用于描述Java類。您可以自定義注釋,然后通過反射獲取注釋以執(zhí)行指定的操作。
舉個簡單的例子
這樣可以通過反射獲得一些元信息,相當(dāng)于配置和業(yè)務(wù)邏輯的分離。
當(dāng)然,這個自定義注釋還取決于一些特定的注釋,我們稱之為元注釋。一共有五種:
@保留:生存周期保留策略.SOURCE
保持在源階段保留策略.CLASS
Compile
retentionpolicy,runtime
@documented將注釋中的元素包含到Javadoc中
@目標(biāo)注釋可用于類、方法、屬性、,etc.]@inherited
@repeatable
java反射機制怎樣獲取到類上面的注解?
//定義注釋并將Java注釋保留策略指定為運行時。運行時將其注入Java字節(jié)碼文件//中,以便在運行時反映和獲取它。@ 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類().getAnnotation(MyAnnotation.class類) 系統(tǒng)輸出打印(“鍵=”注釋.key()“t值=”注釋.值())}
我知道1。首先獲取這個類的classClass> objclass=t.getclass()2。獲取位于的此類字段[]的字段屬性objclass.getDeclaredFields() 3. 遍歷(field FD:at){//的所有字段例如,如果(fd.I注釋存在( NotNull.class類)){//這樣,我們得到注釋屬性notnull D=fd.getAnnotation注釋( NotNull.class類)要得到一個注解,你需要先得到它的字段,希望對你有所幫助