Java注解簡(jiǎn)單使用實(shí)例解析
作為java開(kāi)發(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) //接口、類(lèi)、枚舉
- @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:說(shuō)明子類(lèi)可以繼承父類(lèi)中的該注解
注解也可用于一些解耦的應(yīng)用,框架去調(diào)用接口的多個(gè)實(shí)現(xiàn)類(lèi)。實(shí)現(xiàn)類(lèi)的類(lèi)名和路徑可能會(huì)變,只要注解不變。對(duì)框架來(lái)說(shuō)是沒(méi)變的,框架的邏輯可以不變。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
詳解Java多線程編程中互斥鎖ReentrantLock類(lèi)的用法
Java多線程并發(fā)的程序中使用互斥鎖有synchronized和ReentrantLock兩種方式,這里我們來(lái)詳解Java多線程編程中互斥鎖ReentrantLock類(lèi)的用法:2016-07-07Java項(xiàng)目中實(shí)現(xiàn)使用traceId跟蹤請(qǐng)求全流程日志
這篇文章主要介紹了Java項(xiàng)目中實(shí)現(xiàn)使用traceId跟蹤請(qǐng)求全流程日志方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-08-08IDEA如何加載resources文件夾下文件相對(duì)路徑
這篇文章主要介紹了IDEA如何加載resources文件夾下文件相對(duì)路徑問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-12-12java內(nèi)存泄漏與內(nèi)存溢出關(guān)系解析
這篇文章主要介紹了java內(nèi)存泄漏與內(nèi)存溢出關(guān)系解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下2019-12-12Javadoc標(biāo)簽和Javadoc注釋規(guī)范說(shuō)明
這篇文章主要介紹了Javadoc標(biāo)簽和Javadoc注釋規(guī)范說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2021-02-02Mybatis-Plus實(shí)現(xiàn)SQL攔截器的示例
這篇文章主要介紹了Mybatis-Plus實(shí)現(xiàn)一個(gè)SQL攔截器,通過(guò)使用SQL攔截器,開(kāi)發(fā)人員可以在執(zhí)行SQL語(yǔ)句之前或之后對(duì)其進(jìn)行修改或記錄,從而更好地控制和優(yōu)化數(shù)據(jù)庫(kù)操作,對(duì)Mybatis-Plus?SQL攔截器相關(guān)知識(shí)感興趣的朋友一起看看吧2023-05-05