註解備忘

下面的內容轉載於http://www.tmser.com/?post=34&page=2以備忘。

 

所有註解都自動繼承於java.lang.annotation.Annotation,java提供了四個元註解,分別是:@Target,@Retention,@Documented,@Inherited ,再次強調下元註解是java API提供,是專門用來定義註解的註解,其作用分別如下。

        @Target 表示該註解用於什麼地方,可能的值在枚舉類 ElemenetType 中,包括: 
          ElemenetType.CONSTRUCTOR 構造器聲明 
          ElemenetType.FIELD 域聲明(包括 enum 實例) 
          ElemenetType.LOCAL_VARIABLE 局部變量聲明 
          ElemenetType.METHOD 方法聲明 
          ElemenetType.PACKAGE 包聲明 
          ElemenetType.PARAMETER 參數聲明 
          ElemenetType.TYPE 類,接口(包括註解類型)或enum聲明 

     @Retention 表示在什麼級別保存該註解信息。可選的參數值在枚舉類型 RetentionPolicy 中,包括: 
          RetentionPolicy.SOURCE  註解將被編譯器丟棄,如如java API提供的SuppressWarnings 
          RetentionPolicy.CLASS     註解在class文件中可用,但會被VM丟棄 
          RetentionPolicy.RUNTIME VM將在運行期也保留註釋,因此可以通過反射機制讀取註解的信息。 

      @Documented  該元Annotation修飾的Annotation類將被javadoc工具提取成文檔,如果定義Annotation類時使用了@Documented修飾,則所有使用該Annotation修飾的程序元素在API文檔中將會包含該Annotation說明。

      @Inherited 允許子類繼承父類中的註解,被該元註解修飾的註解只對class類類型有效,且僅僅是註解被繼承。

 

附件是一個依賴注入的簡單例子,使用java註解和反射實現,開發平臺是windows7,java6,myeclipse8

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章