一区二区三区日韩精品-日韩经典一区二区三区-五月激情综合丁香婷婷-欧美精品中文字幕专区

分享

linuxbyte

 pstn 2006-11-28



    項目到了尾聲,大家都開始頭疼——又要寫文檔了……是的,我們大多數(shù)人都不是從正規(guī)的Programer訓(xùn)練出來的。當(dāng)初學(xué)習(xí)編程序的時候,就從來沒有想過要給自己寫的那幾個程序編寫一份完整的文檔,所有的注釋都僅僅是為了自己當(dāng)時能夠想起這段代碼到底是干什么的,沒有人想過這些代碼的升級、共享問題。但是,開始做商業(yè)軟件之后,一切都變了,尤其是大型的團(tuán)隊開發(fā)項目中。
    大家也許注意到了,java的API文檔總是緊緊跟隨著JSDK的版本的提高而保持著最新的狀態(tài)。試想一下,手工維護(hù)這么復(fù)雜的文檔可能嗎?當(dāng)然不可能,這一切都是javadoc這個小程序的功勞(當(dāng)然也有java類庫作者們做程序注釋的一份功勞)。API文檔就是用它根據(jù)最新的源代碼自動生成的,一切都是這么容易——只需要你把本來就要寫的注釋寫得更規(guī)范一些,再稍微詳細(xì)一些。然而,大家似乎好像根本就沒有意識到它的存在,很少有人會用它來為自己的程序生成文檔。不知道,你現(xiàn)在是否對它有了興趣?好吧,下面我們就開始這個令人輕松的自動文檔生成之旅。

    【如何插入注釋】

    JAVADOC為你生成代碼不是憑空來的,也不是它會自動分析你的代碼——每個人都有自己的代碼風(fēng)格,如果要進(jìn)行分析翻譯恐怕還是機器碼更容易生成百倍。它的分析機制依賴于你按照規(guī)范為你的代碼添加應(yīng)有而足夠的注釋。只有你老老實實寫注釋,才有可能把以前需要做雙份的工作一次做了。
    Javadoc工具可以從下列對象中提取出信息:
    · 包。
    · 公共類。
    · 公共接口。
    · 公共或者受保護(hù)的方法。
    · 公共或者受保護(hù)的變量/常數(shù)。
    針對每一種特性,你都應(yīng)該提供一條注釋。每一條注釋都要以/**打頭,以*/結(jié)尾。在每條/** …… */文檔注釋可包括任意格式的文字。,它的第一個句子應(yīng)該是一個總結(jié)性的語句,javadoc會自動把它提出來制作總結(jié)頁。當(dāng)然,這里你完全可以使用一些HTML的記號,例如<i>...</i>表示斜體;<tt>...</tt>表示等寬的“打印機”字體;<b>...</b>表示粗體;甚至用<img...>包括一副圖象等等。(但是不要使用類似于<h1>的標(biāo)題格式的標(biāo)記,或者水平分隔線<hr>等,它們會和文檔自己的格式發(fā)生沖突)然后在后面接上一些特殊的“標(biāo)記”。每個標(biāo)記以@開頭,例如@author或者@param等等。
    加入在注釋中包含了指向其它文件的其它文件的鏈接的話(例如你的插圖和圖片),需要將那些文件放置在名為doc-files的子目錄中。javadoc會將這些目錄以及其中的文件從源目錄復(fù)制到文檔目錄。下面我們分類解釋一下我們可能會比較常用的一些標(biāo)記。

    ■常規(guī)注釋
    下面這些標(biāo)記可以在所有文檔注釋中使用。
    ◇ @since 版本
    該標(biāo)記可以生成一個注釋表明這個特性(類、接口、屬性或者方法等)是在軟件的哪個版本之后開始提供的。
    ◇ @deprecated 類、屬性、方法名等
    這個標(biāo)記可以增加一條注釋,指出相應(yīng)的類、方法或者屬性不再應(yīng)該使用。javadoc僅將首句復(fù)制到概覽部分和索引中。后面得句子還可以解釋為什么不鼓勵使用它。有時候,我們也推薦另外一種解決辦法,例如:
    @deprecated Use <tt>theAnotherMethod</tt>
    或者使用{@link}標(biāo)記給一個推薦的連接關(guān)于它的使用我們將馬上介紹。
    ◇ @see 鏈接
    這個標(biāo)記在“See also”(參見)小節(jié)增加一個超鏈接。這里的鏈接可以是下面幾項內(nèi)容:
    · package.class#member label 添加一個指向成員的錨鏈接,空格前面是超鏈接的目標(biāo),后面是顯示的文字。注意分隔類和它的成員的是#而不是點號,你可以省略包名或者連類名也一塊省略,缺省指當(dāng)前的包和類,這樣使注釋更加簡潔,但是#號不能省略。label是可以省略的。
    · <a href=...>label</a> 這個不用解釋了吧。
    · "Text" 這個直接在“See also”中添加一段沒有鏈接的文字。
    ◇ {@link 鏈接目標(biāo) 顯示文字}
    其實準(zhǔn)確的說,link的用法和see的用法是一樣,see是把鏈接單列在參見項里,而link是在當(dāng)前的注釋中的任意位置直接嵌入一段帶超級鏈接的文字。

    ■為類和接口添加注釋
    類或者接口的注釋必須在所有import語句的后面,同時又要位于class定義的前面。除了上面所說的常規(guī)標(biāo)記以外,你還可以在類注釋中使用如下標(biāo)記:
    ◇ @author 作者名
    當(dāng)使用author標(biāo)記時,用指定的文本文字在生成的文檔中添加“Author”(作者)項。文檔注釋可以包含多個@author標(biāo)記??梢詫γ總€@author指定一個或者多個名字。當(dāng)然你同樣可以使用多個作者標(biāo)記,但是它們必須放在一塊兒。
    ◇ @version 版本
    這個標(biāo)記建議一個“版本”條目,后面的文字可以是當(dāng)前版本的任意描述。
    下面是類注釋的一個例子:
    /**
    * An implementation of a menu bar. You add <code>JMenu</code> objects to the
    * menu bar to construct a menu. When the user selects a <code>JMenu</code>
    * object, its associated <code>JPopupMenu</code> is displayed, allowing the
    * user to select one of the <code>JMenuItems</code> on it.
    * <p>
    * For information and examples of using menu bars see
    * <a
    href="How‘ target=_blank>http://java./docs/books/tutorial/uiswing/components/menu.html">How to Use Menus</a>,
    * a section in <em>The Java Tutorial.</em>
    * For the keyboard keys used by this component in the standard Look and
    * Feel (L&F) renditions, see the
    * <a href=doc-files/Key-Index.html#JMenuBar>JMenuBar</a> key assignments.
    * <p>
    * <strong>Warning:</strong>
    * Serialized objects of this class will not be compatible with
    * future Swing releases. The current serialization support is appropriate
    * for short term storage or RMI between applications running the same
    * version of Swing. A future release of Swing will provide support for
    * long term persistence.
    *
    * @beaninfo
    * attribute: isContainer true
    * description: A container for holding and displaying menus.
    *
    * @version 1.85 04/06/00
    * @author Georges Saab
    * @author David Karlton
    * @author Arnaud Weber
    * @see JMenu
    * @see JPopupMenu
    * @see JMenuItem
    */

    ■方法注釋
    緊靠在每條方法注釋的前面,必須有一個它所描述的那個方法的簽名。同樣除了使用常規(guī)用途的標(biāo)記以外,還可以使用如下針對方法的注釋:
    ◇ @param 變量描述
    當(dāng)前方法需要的所有參數(shù),都需要用這個標(biāo)記進(jìn)行解釋,并且這些標(biāo)記都應(yīng)該放在一起。具體的描述(說明)可同時跨越多行,并且可以使用html標(biāo)記。
    ◇ @return 該方法的返回值
    這個標(biāo)記為當(dāng)前方法增加一個返回值(“Returns”)小節(jié)。同樣具體描述支持html并可跨多行。
    ◇ @throws 該方法拋出的異常
    這個標(biāo)記為當(dāng)前方法在“Throws”小節(jié)添加一個條目,并會自動創(chuàng)建一個超級鏈接。具體的描述可以跨越多行,同樣可以包括html標(biāo)記。一個方法的所有throws都必須放在一起。
    下面是一個方法注釋的例子:
    /**
    * Returns the model object that handles single selections.
    *
    * @param ui the new MenuBarUI L&F object
    * @return the <code>SingleSelectionModel</code> property
    * @see SingleSelectionModel
    * @see JComponent#getUIClassID
    * @see UIDefaults#getUI
    */

    ■包和綜述注釋
    前面的都是針對某一個類、方法等的注釋,可以直接放在JAVA源文件中。然而為了生成一個包的注釋,必須在每個包的目錄下放置一個名為package.html的文件來對包進(jìn)行描述。標(biāo)簽<body>....</body>之間的文字都會被javadoc自動提取出來。
    也可以為所有源文件提供一個綜述注釋,寫入名為overview.html文件中,將其放在所有源文件所在的父目錄下面。標(biāo)簽<body> .... </body>之間的文字也都會被javadoc自動提取出來,做成文檔的Overview

    【如何提取程序文檔】

    首先,我們還是依照慣例來看看javadoc的基本用法,你可以通過javadoc -help來獲得它當(dāng)前版本的具體設(shè)定細(xì)節(jié)。
    javadoc [options] [packagename] [sourcefiles] [@files]
    參數(shù)可以按造任意順序排列。
    · options 命令行選項。
    · packagenames 一系列包的名字,空格分隔,必須分別制定想要為之建立文檔的每一個包。Javadoc不遞歸作用于每一個包,也不允許使用通配符。
    · sourcefiles 一系列源文件名,用空格分隔。源文件名可以包括路徑和通配符如“*”。
    · @files 以任意次序包含包名和源文件的一個或者多個文件。當(dāng)在sourcefiles中需要指定的文件太多的時候,就可以使用它來簡化操作。目標(biāo)文件是以空格或者回車來進(jìn)行分隔的源文件名。
    其中常用的選項有:
    -d 路徑
    指定javadoc保存生成的HTML文件的目的目錄,缺省為當(dāng)前目錄。
    -author
    在文檔中包含作者信息(默認(rèn)情況下會被省略)
    -version
    在文檔中包含版本信息(在默認(rèn)情況下會被省略)
    -header header文本
    指定放置在每個輸出文件頂部的頁眉文件。該頁眉文件將放在上部導(dǎo)航欄的右邊,header文本可以包括HTML標(biāo)記和空格,但是如果這樣就必須用引號將它括起。在header中的任何內(nèi)部引號都不許使用轉(zhuǎn)義。
    -footer footer文本
    指定放置在每個輸出文件底部的腳注文本。腳本將放置在下部導(dǎo)航欄的右邊,其它同header一樣。
    -bottom text
    指定放置在么個輸出文件底部的文本。該文本將放置在頁底,位于導(dǎo)航欄的下面。其它同header參數(shù)。
    -protected
    只顯示受保護(hù)的和共有的類及成員,這是缺省狀態(tài)。
    -public
    只顯示公有的類和成員。
    -package
    只顯示包、受保護(hù)的和公有的類及成員。
    -private
    顯示所有的類和成員,如果是內(nèi)部開發(fā)使用的程序文檔,這個將非常有用。
    -sourcepath sourcepathlist
    當(dāng)將包名傳遞給javadoc的時候,可以指定查找源文件(.java)的搜索路徑。但必須注意,只有當(dāng)用javadoc命令指定包名時才能使用sourcepath選項。如果省略sourcepath,則javadoc使用classpath查找源文件。注意:你需要把sourcepath設(shè)置成目標(biāo)包的源文件所在的目錄,例如:你在從c:jproject里有一個包cn.com.linuxaid,你想為它里面的文件生成文檔,那么你就必須寫成c:jprojectcncomlinuxaid。
    -clathpath clathpathlist
    指定javadoc查找“引用類”的路徑,“引用類”是值帶文檔的類加上它們引用的任何類。javadoc將搜索指定路徑的所有子目錄。classpathlist可以包含多個路徑,它們用分號分隔。

    下面我們來舉一個例子:
    假設(shè),我們需要在targetdocdir放置我們生成的文檔,需要對c:jproject里的cn.com.linuxaid包內(nèi)的源文件建立程序文檔。那么我們需要進(jìn)入c:jprojectcncom(也就是包含了overview.html的目錄——假如你提供了它的話)。然后運行 javadoc -d targetdocdir cn.com.linuxaid

    除了javadoc提供了豐富的選項參數(shù)來讓你定制你所需要生成的程序文檔以外,還可以借助doclet來產(chǎn)生任何形式的輸出,具體的情況,請仔細(xì)閱讀聯(lián)機幫助文檔。



    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點擊一鍵舉報。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多

    久久精品国产亚洲av麻豆| 亚洲中文字幕在线观看四区| 欧美一区二区三区不卡高清视| 亚洲欧美日本国产不卡| 日韩1区二区三区麻豆| 国产精品十八禁亚洲黄污免费观看| 精品久久综合日本欧美| 热情的邻居在线中文字幕| 国自产拍偷拍福利精品图片| 国产免费人成视频尤物| 日韩欧美高清国内精品| 欧美一区二区三区播放| 日韩人妻少妇一区二区| 欧美黄色黑人一区二区| 护士又紧又深又湿又爽的视频| 国产超碰在线观看免费| 中文字幕免费观看亚洲视频| 一区二区三区日韩中文| 99久久成人精品国产免费| 日本av在线不卡一区| 男女一进一出午夜视频| 性感少妇无套内射在线视频| 黄色国产一区二区三区| 一本久道久久综合中文字幕| 久久精品亚洲欧美日韩| 中文字幕人妻av不卡| 国产又粗又猛又大爽又黄同志| 亚洲午夜福利视频在线| 高中女厕偷拍一区二区三区| 欧美黄色黑人一区二区| 精品欧美日韩一二三区| 国产精品亚洲欧美一区麻豆 | 久久99精品国产麻豆婷婷洗澡| 亚洲精品一二三区不卡| 国产又爽又猛又粗又色对黄| 国产又粗又猛又大爽又黄| 在线观看视频日韩精品| 精品女同一区二区三区| 国产精品大秀视频日韩精品| 欧美中文字幕一区在线| 91在线爽的少妇嗷嗷叫|