Java注解的Retention和RetentionPolicy實例分析
本文實例講述了Java注解的Retention和RetentionPolicy。分享給大家供大家參考,具體如下:
一 源碼賞析
1 源碼
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.ANNOTATION_TYPE)
public @interface Retention {
RetentionPolicy value();
}
public enum RetentionPolicy {
//此注解類型的信息只會記錄在源文件中,編譯時將被編譯器丟棄,也就是說
//不會保存在編譯好的類信息中
SOURCE,
//編譯器將注解記錄在類文件中,但不會加載到JVM中。如果一個注解聲明沒指定范圍,則系統(tǒng)
//默認值就是Class
CLASS,
//注解信息會保留在源文件、類文件中,在執(zhí)行的時也加載到Java的JVM中,因此可以反射性的讀取。
RUNTIME
}
2 說明
Retention:(中文含義為“保留”)來定義一個注解的保存范圍。
@Documented:將自定義注解設置為文檔說明信息。
3 賞析內置注解的 Retention
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.SOURCE) //注解信息只能在源文件中出現(xiàn)
public @interface Override {
}
@Documented
@Retention(RetentionPolicy.RUNTIME) //注解信息在執(zhí)行時出現(xiàn)
@Target(value={CONSTRUCTOR, FIELD, LOCAL_VARIABLE, METHOD, PACKAGE, PARAMETER, TYPE})
public @interface Deprecated {
}
@Target({TYPE, FIELD, METHOD, PARAMETER, CONSTRUCTOR, LOCAL_VARIABLE})
@Retention(RetentionPolicy.SOURCE) //注解信息在源文件中出現(xiàn)
public @interface SuppressWarnings {
String[] value();
}
二 自定義注解的保存范圍
1 代碼
//定義該自定義注解的保存范圍是RUNTIME
@Retention(value = RetentionPolicy.RUNTIME)
@interface AnnoationRetention
{
public String value();
}
2 說明
AnnoationRetention的注解信息會保留在源文件、類文件以及Java虛擬機中。
更多java相關內容感興趣的讀者可查看本站專題:《Java面向對象程序設計入門與進階教程》、《Java數(shù)據(jù)結構與算法教程》、《Java操作DOM節(jié)點技巧總結》、《Java文件與目錄操作技巧匯總》和《Java緩存操作技巧匯總》
希望本文所述對大家java程序設計有所幫助。
相關文章
springboot解決java.lang.ArrayStoreException異常
這篇文章介紹了springboot解決java.lang.ArrayStoreException異常的方法,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2021-12-12
Spring如何消除代碼中的if-else/switch-case
這篇文章主要給大家介紹了關于Spring如何消除代碼中if-else/switch-case的相關資料,文中通過示例代碼介紹的非常詳細,對大家學習或者使用Spring具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧2019-04-04
10個實現(xiàn)Java集合,Map類型自由轉換的實用工具方法
這篇文章主要為大家整理了整理了10個實用工具方法,可以滿足?Collection、List、Set、Map?之間各種類型轉化,文中的示例代碼講解詳細,需要的可以參考下2023-09-09
如何在IDEA啟動多個Spring Boot工程實例(圖文)
這篇文章主要介紹了如何在IDEA啟動多個Spring Boot工程實例(圖文),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2019-09-09
關于Idea卡在Resolving Maven dependencies的解決方案
本文詳細介紹了關于Idea卡在Resolving Maven dependencies的解決方案,文中通過圖文結合的形式給大家介紹的非常詳細,對大家解決問題有一定的幫助,需要的朋友可以參考下2024-02-02

