一.註解
@Target(ElementType.METHOD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface MthCache {
String key();
}
1.@Target 註解
(1)功能:
- 指明瞭修飾的這個註解的使用範圍,即被描述的註解可以用在哪裏。
(2)ElementType的取值包含以下幾種:
- TYPE:類,接口或者枚舉
- FIELD:域,包含枚舉常量
- METHOD:方法
- PARAMETER:參數
- CONSTRUCTOR:構造方法
- LOCAL_VARIABLE:局部變量
- ANNOTATION_TYPE:註解類型
- PACKAGE:包
2.@Retention 註解
(1)功能:
- 指明修飾的註解的生存週期,即會保留到哪個階段。
(2)RetentionPolicy的取值包含以下三種:
- SOURCE:源碼級別保留,編譯後即丟棄。
- CLASS:編譯級別保留,編譯後的class文件中存在,在jvm運行時丟棄,這是默認值。
- RUNTIME: 運行級別保留,編譯後的class文件中存在,在jvm運行時保留,可以被反射調用。
3.@Documented 註解
(1)功能:
- 指明修飾的註解,可以被例如javadoc此類的工具文檔化,只負責標記,沒有成員取值。
4.@Inherited註解
(1)功能:
- 允許子類繼承父類中的註解。
注意:
- @interface意思是聲明一個註解,方法名對應參數名,返回值類型對應參數類型。