什麼叫做元註解?? ==》用於註解【註釋】的註解就叫做元註解
註解叫做:元數據,標籤,註釋 元註解[數據]--->註解--->標記代碼
1.@Target :用於描述註解的使用範圍,也就是說使用了@Target去定義一個註解,那麼可以決定定義好的註解能用在什麼地方
2.@Retention:用於描述註解的生命週期,也就是說這個註解在什麼範圍內有效,註解的生命週期和三個階段有關:源代碼階段、CLASS文件中有效、運行時有效,故其取值也就三個值,分別代表着三個階段
3.@Documented:表示該註解是否可以生成到 API文檔中。在該註解使用後,如果導出API文檔,會將該註解相關的信息可以被例如javadoc此類的工具文檔化。 注意:Documented是一個標記註解,沒有成員。
4.@Inherited:使用@Inherited定義的註解具備繼承性
假設一個註解在定義時,使用了@Inherited,然後該註解在一個類上使用,如果這個類有子類,那麼通過反射我們可以從類的子類上獲取到同樣的註解、
/**
* Java四大元註解:
* 1.@Target :用於描述註解的使用範圍,也就是說使用了@Target去定義一個註解,那麼可以決定定義好的註解能用在什麼地方
* 內部值:ElementType[] value()數組, value值類型 ElementType枚舉類型
* 元註解中的枚舉值決定了,一個註解可以標記的範圍
* TYPE : 類型上面 用於描述類、接口(包括註解類型) 或enum聲明
* FIELD : 用於描述字段
* METHOD :方法
* PARAMETER : 參數 【參數名】
* CONSTRUCTOR : 構造方法
* LOCAL_VARIABLE : 局部變量
* ANNOTATION_TYPE : 可以打在註解上面
* PACKAGE :可以打在包上面
* TYPE_PARAMETER : 參數類型【形式參數類型】
* TYPE_USE : 任何位置都可以
* 2.@Retention:用於描述一個註解存在的生命週期【源碼,字節碼文件,運行時】
* 內部值:RetentionPolicy value();非數組,意味着只能一個值:
* 值類型:枚舉值RetentionPolicy:幾個值決定了幾個狀態:如下幾個值
* SOURCE :表示一個註解可以存在於源碼中==>java的源碼中
* CLASS :表示 一個註解可以在源碼中,並且可以在字節碼文件中
* RUNTIME :表示 一個註解可以在源碼、字節碼、及運行時期該註解都會存在
* 3.@Document :表示該註解是否可以生成到 API文檔中 ==》即生成API文檔的時 檢驗
* 4.@Inherited :表示一個【註解】能夠被繼承
* 不是說註解與註解之間能否相互繼承
* 而是說:一個類A被註解了,那麼另外一個類B,繼承了A類
* B類能夠繼承到A類中,的註解 (即被@Inherited註解過的註解)
原文鏈接:https://blog.csdn.net/qq_38225558/article/details/82728539