自定義註解 Target和 Retention說明

2021-10-08 16:56:14 字數 827 閱讀 3357

@retention(retentionpolicy.runtime)

@target(elementtype.type)

public @inte***ce test

由下面的原始碼可以看出作用域是給陣列形式,表示可以多種。

@documented

@retention(retentionpolicy.runtime)

@target(elementtype.annotation_type)

public @inte***ce target

public enum elementtype
@retention定義了該annotation被保留的時間長短:

1.某些annotation僅出現在源**中,而被編譯器丟棄;

2.另一些卻被編譯在class檔案中,註解保留在class檔案中,在載入到jvm虛擬機器時丟棄,這是預設行為,所以沒有用retention註解的註解,都會採用這種策略

3.而另一些在class被裝載時將被讀取,註解保留在程式執行期間,此時可以通過反射獲得定義在某個類上的所有註解

作用:表示需要在什麼級別儲存該注釋資訊,用於描述註解的生命週期(即:被描述的註解在什麼範圍內有效)

取值(retentionpoicy)有:

1.source:在原始檔中有效(即原始檔保留)

2.class:在class檔案中有效(即class保留)

3.runtime:在執行時有效(即執行時保留)

自定義註解

target elementtype.field retention retentionpolicy.runtime public inte ce setvalue以上就是乙個自定義的註解,下面來進行說明。target elementtype.field 表示支援該註解的程式元素,field就是屬性...

自定義註解

三個重要元註解 target 即註解的作用域,用於說明註解的使用範圍 即註解可以用在什麼地方,比如類的註解,方法註解,成員變數註解等等 elemenettype.constructor 構造器宣告 elemenettype.field 域宣告 包括 enum 例項 elemenettype.loca...

自定義註解

三個重要元註解 target 即註解的作用域,用於說明註解的使用範圍 即註解可以用在什麼地方,比如類的註解,方法註解,成員變數註解等等 elemenettype.constructor 構造器宣告 elemenettype.field 域宣告 包括 enum 例項 elemenettype.loca...