Java 註解 元註解

2021-08-31 11:41:34 字數 1157 閱讀 4969

@retention(retentionpolicy.source)   //註解僅存在於原始碼中,在class位元組碼檔案中不包含

@retention(retentionpolicy.class)     // 預設的保留策略,註解會在class位元組碼檔案中存在,但執行時無法獲得,

@retention(retentionpolicy.runtime)  // 註解會在class位元組碼檔案中存在,在執行時可以通過反射獲取到

首 先要明確生命週期長度 source < class < runtime ,所以前者能作用的地方後者一定也能作用。一般如果需要在執行時去動態獲取註解資訊,那只能用 runtime 註解;如果要在編譯時進行一些預處理操作,比如生成一些輔助**(如 butterknife),就用 class註解;如果只是做一些檢查性的操作,比如 @override 和 @suppresswarnings,則可選用 source 註解。

原始碼為:

@documented  

@retention(retentionpolicy.runtime)  

@target(elementtype.annotation_type)  

public @inte***ce 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) ///包    

class實現了annotatedelement介面

java常用註解

這兩天公司在做乙個 專案,框架使用的是springmvc框架,在這裡對這幾個註解做乙個歸納整理 專案中的controller層使用 controller註解 service採用 service註解 例 service userservice 註解是告訴spring,當spring要建立userser...

Java註解學習

inte cepublic inte ce testannotation testannotation public class test retention retentionpolicy.runtime public inte ce testannotation elementtype.cons...

java註解草稿

處理註解 在class位元組中,會記錄該類或者該類的方法上的註解 一般註解的處理,不存在 動 靜 形式 test public void annotacationresovle for method m u.getclass getmethods if rh null 如果獲取到動態 類中的原始註解...