JAVADOC語法

參數說明:
@see 生成文檔中的“參見xx 的條目”的超鏈接,後邊可以加上:“類名”、“完整類名”、“完整類名#方法”。可用於:類、方法、變量註釋。
@param 參數的說明。可用於:方法註釋。
@return 返回值的說明。可用於:方法註釋。
@exception 可能拋出異常的說明。可用於:方法註釋。
@version 版本信息。可用於:類註釋。
@author 作者名。可用於:類註釋。
@deprecated 對類或方法的說明 該類或方法不建議使用,引起不推薦使用的警告
@note 表示註解,暴露給源碼閱讀者的文檔
@remark 表示評論,暴露給客戶程序員的文檔
@since 表示從那個版本起開始有了這個函數
@see 表示交叉參考


javadoc命令:
javadoc [options] [packagenames] [sourcefiles]
-public 僅顯示 public 類和成員
-protected 顯示 protected/public 類和成員 (缺省)
-package 顯示 package/protected/public 類和成員
-private 顯示所有類和成員
-d 輸出文件的目標目錄
-version 包含 @version 段
-author 包含 @author 段
-splitindex 將索引分爲每個字母對應一個文件
@interface
它用於定義新的註釋類型(annotation type)。新建一個註釋類型看起來和定義一Interface 沒有什麼兩樣,
MyTag.java用於新建一個用戶自定義標籤,代碼如下,
================================================================================
package tiger.annotation;
/**
* 用戶自定義標籤??MyTag
*/
public @interface MyTag { }
定義了一個tag之後,我們就可以在任何java文件中使用這個tag了,
import tiger.annotation.MyTag;
public class TagTest{
    @MyTag
    public void testTag(){
    }
}
===============================================================================
註釋類型還可以有成員變量,
==============================================================================
package tiger.annotation;
/**
* 用戶自定義標籤??帶有成員變量的MyTag
*/
public @interface MyTag {
    String name();
    int age();
}
=============================================================================
然後我們可以這麼使用這個標籤,
    @MyTag(name="MyTag",age=1)
    public void testTag(){
    }
    使用標籤最終是爲了幫助開發人員提取註釋信息,然後根據不同需求做進一步處理,下面我們來看看如何獲取註釋信息。
=============================================================================
import java.lang.annotation.Annotation;
import tiger.annotation.MyTag;
public class TagTest{
    @MyTag(name="MyTag",age=1)
    public void test(){
    }
    public static void main(String[] args){
        TagTest tt = new TagTest();
        try {
            Annotation[] annotation =tt.getClass().getMethod("test").getAnnotations();
            for (Annotation tag :annotation) {            
              System.out.println("Tag is:" + tag);
              System.out.println("tag.name()" + ((MyTag)tag).name());
              System.out.println("tag.age()" + ((MyTag)(tag)).age());
             }
         } catch(NoSuchMethodException e) {
             e.printStackTrace();
         }
    }
}
===============================================================================
     需要注意的一點是,在執行這段代碼之前我們還有一點小工作要做,還需要給我們的自定義標籤MyTag加上一個說明標籤,@ Retention, 表明註釋信息將可以在運行時刻通過反射機制得到。如果不加入這個標籤,上面的代碼將沒有任何輸出。修改以後的MyTag如下,
================================================================================
/**
* 用戶自定義標籤??帶有成員變量的MyTag
*/
@Retention(RetentionPolicy.RUNTIME)
public @interface MyTag {
    String name();
    int age();
}
================================================================================
然後我們執行TagTest可以得到輸出如下,
Tag is:@tiger.annotation.MyTag(name=MyTag, age=1)
tag.name()MyTag
tag.age()1
好了,Tiger新的註釋語法基本用法就這麼簡單,基本用法雖然簡單,但是獲取註釋信息之後如何處理確很值得推敲,我們可以用他們來做一些語法檢查,文件相關性檢查,進行各種統計等等

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