自定義註解常用筆記@Target,@Retention,@Document,@Inherited
圖例:
crtl進入該註解
@Target
@Target :(自定義)註解的作用目標
- @Target(ElementType.TYPE)——接口、類、枚舉、註解
- @Target(ElementType.FIELD)——字段、枚舉的常量
- @Target(ElementType.METHOD)——方法
- @Target(ElementType.PARAMETER)——方法參數
- @Target(ElementType.CONSTRUCTOR) ——構造函數
- @Target(ElementType.LOCAL_VARIABLE)——局部變量
- @Target(ElementType.ANNOTATION_TYPE)——註解
- @Target(ElementType.PACKAGE)——包
@Retention
@Retention :(自定義)註解的保留位置
- RetentionPolicy.SOURCE:(默認)這種類型的Annotations只在源代碼級別保留,編譯時就會被忽略,在class字節碼文件中不包含
- RetentionPolicy.CLASS:這種類型的Annotations編譯時被保留,默認的保留策略,在class文件中存在,但JVM將會忽略,運行時無法獲得
- RetentionPolicy.RUNTIME:這種類型的Annotations將被JVM保留,所以他們能在運行時被JVM或其他使用反射機制的代碼所讀取和使用
@Document
@Document:說明該註解將被包含在javadoc中,默認情況下,javadoc是不包括註解的,但如果聲明註解時指定了 @Documented,則它會被 javadoc 之類的工具處理, 則它的註釋成爲公共API的一部分
@Inherited
@Inherited:說明子類可以繼承父類中的該註解(大概作用)