Javadoc注釋基本介紹和基本用法

一、Javadoc的基本信息:

javadoc是Sun公司提供的一個技術(shù),它從程序源代碼中抽取類、方法、成員等注釋形成一個和源代碼配套的API幫助文檔。也就是說,只要在編寫程序時以一套特定的標簽作注釋,在程序編寫完成后,通過Javadoc就可以同時形成程序的開發(fā)文檔了。javadoc命令是用來生成自己API文檔的,使用方式:使用命令行在目標文件所在目錄輸入javadoc +文件名.java。

? Javadoc主要用于代碼的注釋規(guī)范性。


Javadoc命令是用來生成自己的API文檔,使用方式:

javadoc 源文件名.java

javadoc -d 文檔存放目錄 源文件名.java

通過IDEA生成Javadoc : Tools -> Generate JavaDoc

二、?Javadoc注釋規(guī)范?:

// 注釋一行

/ *? ? */ 注釋若干行?

/**? ……*/? 注釋若干行,寫入Javadoc文檔

如圖:

效果圖

代碼:

/**

* show 方法的簡述.

* <p>show 方法的詳細說明第一行<br>

* show 方法的詳細說明第二行

* @param b true 表示顯示,false 表示隱藏

* @return 沒有返回值

*/ public void show(boolean b) {? ? frame.show(b);? ? }

三、Javadoc的基本用法

文檔格式:

?寫在類上的文檔標注一般分為三段:

第一段:概要描述,通常用一句或者一段話簡要描述該類的作用,以英文句號作為結(jié)束

第二段:詳細描述,通常用一段或者多段話來詳細描述該類的作用,一般每段話都以英文句號作為結(jié)束

第三段:文檔標注,用于標注作者、創(chuàng)建時間、參閱類等信息

生成文檔是HTML格式。

換行<br>

分段<p>(寫在段前))

示例:


示例

在注釋中出現(xiàn)以@開頭東東被稱之為Javadoc文檔標記,是JDK定義好的,如@author、@version、@since、@see、@link、@code、@param、@return、@exception、@throws等。? ??

主要的文檔標記

源自百度百科

1. @link:{@link 包名.類名#方法名(參數(shù)類型)} 用于快速鏈接到相關(guān)代碼

@link的使用語法{@link 包名.類名#方法名(參數(shù)類型)},其中當包名在當前類中已經(jīng)導入了包名可以省略,可以只是一個類名,也可以是僅僅是一個方法名,也可以是類名.方法名,使用此文檔標記的類或者方法,可用通過按住Ctrl鍵+單擊 可以快速跳到相應的類或者方法上,解析成html其實就是使用< code> 包名.類名#方法名(參數(shù)類型)< /code>

2. @code: {@code text} 將文本標記為code

{@code text} 會被解析成<code> text </code>

將文本標記為代碼樣式的文本,在code內(nèi)部可以使用 < 、> 等不會被解釋成html標簽, code標簽有自己的樣式

一般在Javadoc中只要涉及到類名或者方法名,都需要使用@code進行標記。

3. @param

一般類中支持泛型時會通過@param來解釋泛型的類型

4. @author

詳細描述后面一般使用@author來標記作者,如果一個文件有多個作者來維護就標記多個@author,@author 后面可以跟作者姓名(也可以附帶郵箱地址)、組織名稱(也可以附帶組織官網(wǎng)地址)

5. @see

@see 一般用于標記該類相關(guān)聯(lián)的類,@see即可以用在類上,也可以用在方法上。

6. @since 從以下版本開始

@since 一般用于標記文件創(chuàng)建時項目當時對應的版本,一般后面跟版本號,也可以跟是一個時間,表示文件當前創(chuàng)建的時間

7. @version 版本

@version 用于標記當前版本,默認為1.0

8. @param

@param 后面跟參數(shù)名,再跟參數(shù)描述

9. @return

@return 跟返回值的描述

10. @value

用于標注在常量上,{@value} 用于表示常量的值

此外還有@serial、@serialField、@serialData、{@docRoot}、{@inheritDoc}、{@literal}、{@code} {@value arg}幾個不常用的標簽,由于不常使用,我們不展開敘述,感興趣的讀者可以查看幫助文檔。

(1)概要描述:通常用一句或者一段話簡要描述該類的作用, 如:


描述該類的作者和版本

如上圖利用author和version描述了該類的作者和版本

切記:當Java源代碼中包含中文字符時,我們在用javac編譯時會出現(xiàn)“錯誤:編碼GBK的不可映射字符”。

如圖

由于JDK是國際版的,我們在用javac編譯時,編譯程序首先會獲得我們操作系統(tǒng)默認采用的編碼格式(GBK),然后JDK就把Java源文件從GBK編碼格式轉(zhuǎn)換為Java內(nèi)部默認的Unicode格式放入內(nèi)存中,然后javac把轉(zhuǎn)換后的Unicode格式的文件編譯成class類文件,此時,class文件是Unicode編碼的,它暫存在內(nèi)存中,緊接著,JDK將此以Unicode格式編碼的class文件保存到操作系統(tǒng)中形成我們見到的class文件。當我們不加設(shè)置就編譯時,相當于使用了參數(shù):javac -encoding GBK Test.java,就會出現(xiàn)不兼容的情況。

使用-encoding參數(shù)指明編碼方式:javac -encoding UTF-8 Test.java,就可以了。

更改編碼方式為UTF-8

當更改編碼方式為UTF-8時就可以就行生成含有中文字符的API文檔

API文檔

打開生成API文檔查看剛剛定義的javadoc注釋


效果圖

當然你要是定義的英文注釋就直接忽視編碼問題

最后看一下阿里巴巴的Javadoc注釋規(guī)范

阿里巴巴Java開發(fā)手冊之注釋規(guī)約:

類,類屬性、類方法的注釋必須使用Javadoc規(guī)范,使用/*內(nèi)容/格式,不得使用//XX方式。

所有的抽象方法(包括接口中的方法)必須要用Javadoc注釋,除了返回值、參數(shù)、異常說明外,還必須指出該方法做什么事情,實現(xiàn)什么功能。

所有的類都必須添加創(chuàng)建者和創(chuàng)建日期。

方法內(nèi)部的單行注釋,在被注釋語句上方另起一行,使用//注釋。方法內(nèi)部的多行注釋,使用/* */注釋,注意與代碼對齊。

所有的枚舉類型字段必須要有注釋,說明每個數(shù)據(jù)項的用途。

與其用不熟練的英文來注釋,不如用中文注釋把問題說清楚。專有名詞與關(guān)鍵字保持英文原文即可。

在修改代碼的同時,要對注釋進行相應的修改,尤其是參數(shù),返回值,異常,核心邏輯等的修改。

謹慎注釋掉代碼。要在上方詳細說明,而不是簡單的注釋掉。如果無用,則刪除。

對于注釋的要求:

(1)能夠準確反映設(shè)計思想和代碼邏輯。

(2)能夠描述業(yè)務(wù)含義,使其他程序員能夠迅速了解代碼背后的信息。完全沒有注釋的大段代碼對于閱讀者形同天書;注釋是給自己看的,應做到即使間隔很長時間,也能清晰理解當時的思路,注釋也是給繼任者看的,使其能夠快速接替自己的工作。

好的命名、代碼結(jié)構(gòu)是自解釋的,注釋力求精簡準確、表達到位。避免出現(xiàn)注釋的一個極端:過多過濫的注釋,因為代碼的邏輯一旦修改,修改注釋是相當大的負擔。

特殊注釋標記,請標明標記人與標記時間。注意及時處理這些標記,通過標記掃描經(jīng)常處理此類標記。有時候線上故障就來源于這些標記處的代碼。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373