亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 學院 > 開發設計 > 正文

JavaDoc,在 Java 的注釋上做文章(下)

2019-11-18 13:28:53
字體:
來源:轉載
供稿:網友


  2. 使用 @author、@version 說明類
  這兩個標記分別用于指明類的作者和版本。缺省情況下 javadoc 將其忽略,但命令行開關 -author 和 -version 可以修改這個功能,使其包含的信息被輸出。這兩個標記的句法如下:
  @author 作者名
  @version 版本號
  其中,@author 可以多次使用,以指明多個作者,生成的文檔中每個作者之間使用逗號 (,) 隔開。@version 也可以使用多次,只有第一次有效,生成的文檔中只會顯示第一次使用 @version 指明的版本號。如下例
  /**
  * @author Fancy
  * @author Bird
  * @version Version 1.00
  * @version Version 2.00
  */
  public class TestJavaDoc {
  }
  生成文檔的相關部分如圖:
   JavaDoc,在 Java 的注釋上做文章(下)(圖一)
  從生成文檔的圖示中可以看出,兩個 @author 語句都被編譯,在文檔中生成了作者列表。而兩個 @version 語句中只有第一句被編譯了,只生成了一個版本號。
  從圖上看,作者列表是以逗號分隔的,假如我想分行顯示怎么辦?另外,假如我想顯示兩個以上的版本號又該怎么辦?
  ——我們可以將上述兩條 @author 語句合為一句,把兩個 @version 語句也合為一句:
  @author Fancy
Bird
  @version Version 1.00
Version 2.00
  結果如圖:
   JavaDoc,在 Java 的注釋上做文章(下)(圖二)
  我們這樣做即達到了目的,又沒有破壞規則。@author 之后的作者名和 @version 之后的版本號都可以是用戶自己定義的任何 Html 格式,所以我們可以使用
標記將其分行顯示。同時,在一個 @version 中指明兩個用
分隔的版本號,也沒有破壞只顯示第一個 @version 內容的規則。
  3. 使用 @param、@return 和 @exception 說明方法
  這三個標記都是只用于方法的。@param 描述方法的參數,@return 描述方法的返回值,@exception 描述方法可能拋出的異常。它們的句法如下:
  @param 參數名 參數說明
  @return 返回值說明
  @exception 異常類名 說明
  每一個 @param 只能描述方法的一個參數,所以,假如方法需要多個參數,就需要多次使用 @param 來描述。
  一個方法中只能用一個 @return,假如文檔說明中列了多個 @return,則 javadoc 編譯時會發出警告,且只有第一個 @return 在生成的文檔中有效。
  方法可能拋出的異常應當用 @exception 描述。由于一個方法可能拋出多個異常,所以可以有多個 @exception。每個 @exception 后面應有簡述的異常類名,說明中應指出拋出異常的原因。需要注重的是,異常類名應該根據源文件的 import 語句確定是寫出類名還是類全名。   示例如下:
  public class TestJavaDoc {
  /**
  * @param n a switch
  * @param b excrescent parameter
  * @return true or false
  * @return excrescent return
  * @exception java.lang.Exception throw when switch is 1
  * @exception NullPointerException throw when parameter n is null
  */
  public boolean fun(Integer n) throws Exception {
  switch (n.intValue()) {
  case 0:
  break;
  case 1:
  throw new Exception("Test Only");
  default:
  return false;
  }
  return true;
  }
  }
  使用 javadoc 編譯生成的文檔相關部分如下圖:
   JavaDoc,在 Java 的注釋上做文章(下)(圖三)
  可以看到,上例中 @param b excrescent parameter 一句是多余的,因為參數只是一個 n,并沒有一個 b但是 javadoc 編譯時并沒有檢查。因此,寫文檔注釋時一定要正確匹配參數表與方法中正式參數表的項目。假如方法參數表中的參數是 a,文檔中卻給出對參數 x 的解釋,或者再多出一個參數 i,就會讓人摸不著頭腦了。@exceptin 也是一樣。
  上例程序中并沒有拋出一個 NullPointerException,但是文檔注釋中為什么要寫上這么一句呢,難道又是為了演示?這不是為了演示描述多余的異常也能通過編譯,而是為了說明寫異常說明時應考運行時 (RunTime) 異常的可能性。上例程序中,假如參數 n 是給的一個空值 (null),那么程序會在運行的時候拋出一個 NullPointerException,因此,在文檔注釋中添加了對 NullPointerException 的說明。
  上例中的 @return 語句有兩個,但是根據規則,同一個方法中,只有第一個 @return 有效,其余的會被 javadoc 忽略。所以生成的文檔中沒有出現第二個 @return 的描述。
  講到這里,該怎么寫文檔注釋你應該已經清楚了,下面就開始講解 javadoc 的常用命令。
  四. javadoc 命令
  運行 javadoc -help 可以看到 javadoc 的用法,這里列舉常用參數如下:
  用法:
  javadoc [options] [packagenames] [sourcefiles]
  選項:
  -public 僅顯示 public 類和成員
  -PRotected 顯示 protected/public 類和成員 (缺省)
  -package 顯示 package/protected/public 類和成員
  -private 顯示所有類和成員
  -d <Directory> 輸出文件的目標目錄
  -version 包含 @version 段
  -author 包含 @author 段
  -splitindex 將索引分為每個字母對應一個文件
  -windowtitle <text> 文檔的瀏覽器窗口標題
  javadoc 編譯文檔時可以給定包列表,也可以給出源程序文件列表。例如在 CLASSPATH 下有兩個包若干類如下:
  fancy.Editor
  fancy.Test
  fancy.editor.ECommand
  fancy.editor.EDocument
  fancy.editor.EView
  這里有兩個包 (fancy 和 fancy.editor) 和 5 個類。那么編譯時 (Windows 環境) 可以使用如下 javadoc 命令:
  javadoc fancy/Test.java fancy/Editor.java fancy/editor/ECommand.java fancy/editor/EDocument.java fancy/editor/EView.java
  這是給出 java 源文件作為編譯參數的方法,注重命令中指出的是文件路徑,應該根據實際情況改變。也可以是給出包名作為編譯參數,如:
  javadoc fancy fancy.editor
  用瀏覽器打開生成文檔的 index.html 文件即可發現兩種方式編譯結果的不同,如下圖:
  JavaDoc,在 Java 的注釋上做文章(下)(圖四)
  用第二條命令生成的文檔被框架分成了三部分:包列表、類列表和類說明。在包列表中選擇了某個包之后,類列表中就會列出該包中的所有類;在類列表中選擇了某個類之后,類說明部分就會顯示出該類的具體文檔。而用第一條命令生成的文檔只有兩部分,類列表和類說明,沒有包列表。這就是兩種方式生成文檔的最大區別了。
  兩種方式編譯還有一點不同,
  下面再來細說選項。
  -public、-protected、-package、-private 四個選項,只需要任選其一即可。它們指定的顯示類成員的程度。它們顯示的成員多少是一個包含的關系,如下表:
  -private (顯示所有類和成員)
  -package (顯示 package/protected/public 類和成員)
  -protected (顯示 protected/public 類和成員)
  -public (僅顯示 public 類和成員)
  -d 選項答應你定義輸出目錄。假如不用 -d 定義輸出目錄,生成的文檔文件會放在當前目錄下。-d 選項的用法是
  -d 目錄名
  目錄名為必填項,也就是說,假如你使用了 -d 參數,就一定要為它指定一個目錄。這個目錄必須已經存在了,假如還不存在,請在運行 javadoc 之前創建該目錄。
  -version 和 -author 用于控制生成文檔時是否生成 @version 和 @author 指定的內容。不加這兩個參數的情況下,生成的文檔中不包含版本和作者信息。
  -splitindex 選項將索引分為每個字母對應一個文件。默認情況下,索引文件只有一個,且該文件中包含所有索引內容。當然生成文檔內容不多的時候,這樣做非常合適,但是,假如文檔內容非常多的時候,這個索引文件將包含非常多的內容,顯得過于龐大。使用 -splitindex 會把索引文件按各索引項的第一個字母進行分類,每個字母對應一個文件。這樣,就減輕了一個索引文件的負擔。
  -windowtitle 選項為文檔指定一個標題,該標題會顯示在窗口的標題欄上。假如不指定該標題,而默認的文檔標題為“生成的文檔(無標題)”。該選項的用法是:
  -windowtitle 標題
  標題是一串沒有包含空格的文本,因為空格符是用于分隔各參數的,所以不能包含空格。同 -d 類似,假如指定了 -windowtitle 選項,則必須指定標題文本。
  到此為止,Java 文檔和 javadoc 就介紹完了。javadoc 真的能讓我們在 Java 注釋上做文章——生成開發文

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
国产精品高潮呻吟久久av无限| 欧美老女人在线视频| 久久影院资源网| 亚洲国产欧美久久| 亚洲欧美成人网| 国产精品一区av| 亚洲精品一区二三区不卡| 久久久免费精品| 97在线观看免费高清| 97精品久久久| 在线播放国产精品| 7777精品久久久久久| 国产亚洲欧美日韩美女| 成人午夜黄色影院| 欧美黑人巨大精品一区二区| 国产精品精品视频一区二区三区| 成人在线激情视频| 国产精品美女午夜av| 日韩av毛片网| 菠萝蜜影院一区二区免费| 久久在精品线影院精品国产| 亚洲精品国产电影| 日韩中文字幕视频在线| 欧美日韩激情美女| 国产91|九色| 日韩中文娱乐网| 久久99亚洲热视| 欧美做受高潮电影o| 亚洲美女动态图120秒| 国产精品高清免费在线观看| 欧美在线一级va免费观看| 亚洲精品欧美日韩| 国产午夜精品一区二区三区| 韩国福利视频一区| 亚洲黄色av网站| 国产精品久久久久久久久久尿| 欧美日韩国产激情| 欧美精品激情blacked18| 久久久久日韩精品久久久男男| 色婷婷亚洲mv天堂mv在影片| 亚洲sss综合天堂久久| 色久欧美在线视频观看| 日韩毛片在线看| 欧美激情视频给我| 亚洲人成网站在线播| 欧美另类极品videosbest最新版本| 亚洲精品av在线| 欧美丰满片xxx777| 欧美日韩精品国产| 国产成人在线亚洲欧美| 国产日韩精品在线观看| 秋霞成人午夜鲁丝一区二区三区| 91sao在线观看国产| 欧美午夜片欧美片在线观看| 中文字幕自拍vr一区二区三区| 欧美日韩国产精品一区二区三区四区| 国产精品无码专区在线观看| 欧美成人合集magnet| 在线观看国产成人av片| 中文字幕精品一区久久久久| 国产午夜精品美女视频明星a级| 亚洲一区二区在线播放| 久热精品视频在线观看| 国内精品免费午夜毛片| 久久久精品免费视频| 亚洲图片欧洲图片av| 亚洲成年人影院在线| 国产精品男女猛烈高潮激情| 国产欧美日韩专区发布| 欧美日韩国产综合新一区| 91精品国产91久久久久福利| 麻豆国产va免费精品高清在线| 日韩美女中文字幕| 欧美激情女人20p| 亚洲欧美日韩网| 国产精品日韩在线观看| 日韩av在线免费播放| 国语自产精品视频在线看| 国产精品99蜜臀久久不卡二区| 国产精品自产拍高潮在线观看| 国产亚洲视频在线观看| 欧美久久精品午夜青青大伊人| 日韩av在线直播| 久久夜色精品亚洲噜噜国产mv| 亚洲欧美日韩另类| 亚洲男人7777| 中文字幕一区二区三区电影| 97久久伊人激情网| 高跟丝袜欧美一区| 91久久国产精品| 久久精品视频免费播放| 97av在线视频| 欧美日韩国产在线看| 欧美日韩国产一区中文午夜| 中文字幕在线成人| 高清一区二区三区四区五区| 亚洲精品狠狠操| 91精品国产乱码久久久久久蜜臀| 国产日韩中文字幕| 国a精品视频大全| 一区二区三欧美| 日韩成人中文字幕在线观看| 亚洲女人初尝黑人巨大| 国产一区红桃视频| 国产精品成人播放| 亚洲天堂免费视频| 欧美自拍视频在线观看| 成人亚洲欧美一区二区三区| 欧美午夜电影在线| 久久国产精品亚洲| 国产精品一区二区av影院萌芽| 久久中文字幕视频| 欧美最近摘花xxxx摘花| 国产大片精品免费永久看nba| 日韩毛片在线观看| 亚洲bt欧美bt日本bt| 亚洲福利视频二区| 精品人伦一区二区三区蜜桃免费| 久久久久久久91| 久热精品视频在线观看一区| 欧美激情影音先锋| 国产精品一区二区久久久| 97人人爽人人喊人人模波多| 亚洲欧美制服丝袜| 国产精品视频久久久| 2019亚洲男人天堂| 国外成人性视频| 欧美香蕉大胸在线视频观看| 亚洲人成电影网站色| 国内成人精品一区| 日韩福利视频在线观看| 成人午夜在线视频一区| 91精品国产乱码久久久久久久久| 粗暴蹂躏中文一区二区三区| 欧美激情伊人电影| 日韩精品电影网| 国产精品久久久久久婷婷天堂| 国产成人精品久久| 亚洲国产精品美女| 日韩欧美国产中文字幕| 97成人在线视频| 欧美性xxxx在线播放| 欧美天天综合色影久久精品| 国产精品视频一区二区三区四| 亚洲国产天堂久久综合| 亚洲成人国产精品| 国产精品99久久久久久www| 国产福利视频一区| 国产精品日韩久久久久| 26uuu国产精品视频| 亚洲午夜性刺激影院| 国产午夜精品理论片a级探花| 另类少妇人与禽zozz0性伦| 日韩中文字幕免费| 久久久久久久色| 亚洲精品理论电影| 97免费中文视频在线观看| 久久好看免费视频| 久久艳片www.17c.com| 夜夜躁日日躁狠狠久久88av| 欧美人成在线视频| 激情懂色av一区av二区av| 国产午夜精品久久久| 成人精品在线观看|