Java注解簡(jiǎn)單使用實(shí)例解析
作為java開發(fā)的IDE,idea的2020 社區(qū)辦還是比較好用的,比2018版的改進(jìn)不少。
一個(gè)java注解的簡(jiǎn)單例子
package main;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotation.Target;@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.TYPE)public @interface TestAno { enum DOMAIN{ AA, BB; public String call(String msg){ return msg + ' is called'; } } DOMAIN type();}
調(diào)用注解的例子
package main;@TestAno(type = TestAno.DOMAIN.AA)public class CallAno { public static void main(String[] args) { TestAno ano = CallAno.class.getAnnotation(TestAno.class); System.out.println(ano.type()); // AA System.out.println(TestAno.DOMAIN.AA.call('test')); // test is called }}
RetentionPolicy.SOURCE:注解只保留在源文件,當(dāng)Java文件編譯成class文件的時(shí)候,注解被遺棄;
RetentionPolicy.CLASS:注解被保留到class文件,但jvm加載class文件時(shí)候被遺棄,這是默認(rèn)的生命周期;
RetentionPolicy.RUNTIME:注解不僅被保存到class文件中,jvm加載class文件之后,仍然存在;
@Target:注解的作用
@Target(ElementType.TYPE) //接口、類、枚舉 @Target(ElementType.FIELD) //字段、枚舉的常量 @Target(ElementType.METHOD) //方法 @Target(ElementType.PARAMETER) //方法參數(shù) @Target(ElementType.CONSTRUCTOR) //構(gòu)造函數(shù) @Target(ElementType.LOCAL_VARIABLE)//局部變量 @Target(ElementType.ANNOTATION_TYPE)//注解 @Target(ElementType.PACKAGE) ///包 @Inherited:說明子類可以繼承父類中的該注解注解也可用于一些解耦的應(yīng)用,框架去調(diào)用接口的多個(gè)實(shí)現(xiàn)類。實(shí)現(xiàn)類的類名和路徑可能會(huì)變,只要注解不變。對(duì)框架來說是沒變的,框架的邏輯可以不變。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. 以PHP代碼為實(shí)例詳解RabbitMQ消息隊(duì)列中間件的6種模式2. html小技巧之td,div標(biāo)簽里內(nèi)容不換行3. laravel ajax curd 搜索登錄判斷功能的實(shí)現(xiàn)4. python實(shí)現(xiàn)自動(dòng)化辦公郵件合并功能5. python web框架的總結(jié)6. Python基礎(chǔ)之numpy庫的使用7. nestjs實(shí)現(xiàn)圖形校驗(yàn)和單點(diǎn)登錄的示例代碼8. Python 如何將integer轉(zhuǎn)化為羅馬數(shù)(3999以內(nèi))9. Echarts通過dataset數(shù)據(jù)集實(shí)現(xiàn)創(chuàng)建單軸散點(diǎn)圖10. css進(jìn)階學(xué)習(xí) 選擇符
