java元注解(注解在注解上的注解)


//ElementType.TYPE 給類、接口、枚舉上使用
@Target(ElementType.TYPE)//給注解進行注解,表示該注解可以用在什么地方
//@Retention(RetentionPolicy.CLASS)//表示注解傳遞存活時間,CLASS表示注解保留到編譯進行時期,不會被加載到jvm中
@Retention(RetentionPolicy.RUNTIME)//注解可以保留到程序運行時,並被加載到jvm中,因為反射獲取的時類的運行時的狀態,所以可以通過反射機制讀取注解的信息,這個使用較多
public @interface AnnotationClass {
    /**
     * 元注解:
     * ★ 元注解:JDK提供了幾個特殊的注解,只能用在注解上面。
     *                @Target:表示該注解可以用於什么地方,取值如下:
     *                 ElementType.ANNOTATION_TYPE 可以給一個注解進行注解
     *                 ElementType.CONSTRUCTOR 可給構造方法進行注解
     *                 ElementType.FIELD 可給屬性進行注解
     *                 ElementType.LOCAL_VARIABLE 可給局部變量進行注解
     *                 ElementType.METHOD 可給方法進行注解
     *                 ElementType.PACKAGE 可給一個包進行注解
     *                 ElementType.PARAMETER 可給一個方法內的參數進行注解
     *                 ElementType.TYPE 可給一個類型進行注解,比如類、接口、枚舉
     *         @Retention:表示注解傳遞存活時間。取值如下:
     *                 - RetentionPolicy.SOURCE 注解只在源碼階段保留,在編譯器編譯時它將被丟棄。
     *                 - RetentionPolicy.CLASS 注解只被保留到編譯進行的時候,它並不會被加載到 JVM 中。
     *                 - RetentionPolicy.RUNTIME 注解可保留到程序運行時並被加載到 JVM 中,因此可通過反射機制讀取注解的信息。
     *         @Documented:將注解包含到 Javadoc 中
     *         @Inherited:允許子類繼承父類中的注解 如父類Animal有一個注解@Test,且@Test注解上有@Inherited注解,
     *                                         那么該父類Animal的子類Cat也默認有@Test注解
     */
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM