Java 注解总结
一、注解定義
注解早在J2SE1.5就被引入到Java中,主要提供一種機制,這種機制允許程序員在編寫代碼的同時可以直接編寫元數據。
?
二、元注解
- Target ? ? ? ? ? ? ? ? ? 說明了被修飾的注解的應用范圍,也就是被修飾的注解可以用來注解哪些程序元素
- Retention ? ? ? ? ? ? ?表示一個注解類型會被保留到什么時候
- Inherited ? ? ? ? ? ? ??表明被修飾的注解類型是自動繼承的。具體解釋如下:若一個注解類型被Inherited元注解所修飾,則當用戶在一個類聲明中查詢該注解類型時,若發現這個類聲明中不包含這個注解類型,則會自動在這個類的父類中查詢相應的注解類型,這個過程會被重復,直到該注解類型被找到或是查找完了Object類還未找到。
- Documented ? ? ? ??當一個注解類型被@Documented元注解所描述時,那么無論在哪里使用這個注解,都會被Javadoc工具文檔化。
- Repeatable ? ? ? ? ?說明該注解標識的注解可以多次使用到同一個元素的聲明上。
?
三、Target
ElementType枚舉類中的常量
- ANNOTATION_TYPE ? ? ? ? ? ? 表示該注解可以應用到其他注解上
- CONSTRUCTOR ? ? ? ? ? 表示可以使用到構造器上
- FIELD ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表示可以使用到域或屬性上
- LOCAL_VARIABLE ? ? ? ? ? ? ? ?表示可以使用到局部變量上。
- METHOD ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 可以使用到方法級別的注解上。
- PACKAGE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?可以使用到包聲明上。
- PARAMETER ? ? ? ? ? ? ? ? ? ? ? ? 可以使用到方法的參數上
- TYPE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 類、接口(包括注解類型)或enum聲明
- TYPE_USE ? ? ? ? ? ? ? ? ? ? ? ? ??注釋所有類型的使用
- TYPE_PARAMETER ? ? ? ? ? ??在通用類,接口,方法等中注釋類型參數
?
四、Retention
RetentionPolicy枚舉類中的常量
- SOURCE ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表明這個注解會被編譯器忽略,并只會保留在源代碼中。
- CLASS ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?表明這個注解會通過編譯駐留在CLASS文件,但會被JVM在運行時忽略,正因為如此,其在運行時不可見。
- RUNTIME ? ? ? ? ? ? ? ? ? ? ? ? ? ? 表示這個注解會被JVM獲取,并在運行時通過反射獲取。
?
五、常見內建注解
@Override
@SuppressWarnings
@Deprecated
@FunctionalInterface
?
六、自定義注解
@Documented @Retention(RetentionPolicy.RUNTIME) @Target(ElementType.METHOD) @Inherited public @interface MethodInfo {String author() default "mk";String date();int version() default 1; }?
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結