注解(Annotation)
生活随笔
收集整理的這篇文章主要介紹了
注解(Annotation)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 1. 概念
- 2. 元注解
1. 概念
代碼中的特殊標記,這些標記可以在編譯,類加載,運行時被讀取,并執行相應的處理,未來的開發模式都是基于注解的,相對較簡潔
需要反射去讀取注解信息,再去讀其成員的值,再做事,沒有注解的話只能用XML配置文件去做
自定義注解沒有使用反射讀取注解就沒有信息處理流程,也就沒有意義
類加載之后將其加載到內存中,此時稱為運行時類
框架=注解+反射+設計模式
JDK內置的三個基本注解,編譯時進行格式檢查
@Override//限定重寫父類方法@Deprecated//表示已過時 @SuppressWarnings("unused")//抑制未使用編譯器警告int num = 10; @SuppressWarnings({"unused","rawtypes"})//rawtypes關于泛型使用抑制ArrayList objects = new ArrayList();JavaSE基礎版 —> JavaEE
public @interface MyAnnotation {//自定義注解,聲明為@interface,參照SuppressWarnings//成員變量(稱為配置參數)以無參方法形式命名,如果只有一個成員變量,建議參數名為value//沒有成員的稱為標記表示標識作用/*成員變量*/String value();//沒有默認值時要指定@MyAnnotation(value="hi")String hello() default "hello";//使用default指定默認值,要修改使前面使用@MyAnnotation(hello="hi")}2. 元注解
對注解進行解釋說明的注解
提一下:元數據 例如String name = “tylt”,真實數據是tylt也是最重要的,那么String name就是修飾真實數據的數據,叫元數據
@Retention(RetentionPolicy.CLASS) //指定該注解的生命周期,其中包含一個RetentionPolicy的枚舉類 /** @Description //TODO 枚舉類參數如下* RetentionPolicy.SOURCE:在源件中有效(即源文件保留),編譯時編譯器將直接丟棄此注釋* RetentionPolicy.CLASS:默認值,在class文件中有效(即class保留),當運行Java程序時,JVM不會保留注解。* RetentionPolicy.RUNTIME:在運行時有效(即運行時保留),當運行Java程序時,JVM會保留注釋,程序C才可以通過反射獲取該注釋**/ @Target({TYPE,FIELD,CONSTRUCTOR,METHOD}) //指明當前注解可以修飾哪種類型:例如類(TYPE),構造器,形參,方法//自定義注解通常都使用Retention、Target兩個元注解 /***************************************************/ @Documented //表示可被JavaDoc提取為文檔,因為默認情況下javadoc不包含注解,定義為Documented的注解必須設置Retention為RUNTIME @Inherited //修飾的注解具有繼承性,父類中聲明后子類中也具有@Repeatable(MyAnnotations.class)//可重復注解public @interface MyAnnotation {String value();} @Target({TYPE,FIELD,CONSTRUCTOR,METHOD}) @Retention(RetentionPolicy.CLASS) @Inherited @Documented public @interface MyAnnotations {MyAnnotation[] value(); } public class Test {@MyAnnotation(value="hi")@MyAnnotation(value="ho")//可重復注解public static void main(String[] args) {} }總結
以上是生活随笔為你收集整理的注解(Annotation)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Intel 8086处理器
- 下一篇: 清华计算机系2018录取分数线,2018