java注釋規(guī)范

前言:

?????現(xiàn)在java的出產(chǎn)地sun公司并沒(méi)有定義一個(gè)java注釋規(guī)范眶痰,注釋規(guī)范目前是每個(gè)公司自己有自己的一套規(guī)范诊杆,主要是為了團(tuán)隊(duì)之間的協(xié)作船侧。

1蔬螟、基本規(guī)則

? ? ?1.注釋應(yīng)該使代碼更加清晰易懂

? ? ?2.注釋要簡(jiǎn)潔明了,只要提供能夠明確理解程序必要的信息就可以了铁孵。如果注釋太復(fù)雜會(huì)影響程序整潔度和閱讀感锭硼。

? ? ?3.注釋不僅描述程序作了什么,還要描述為什么這樣做以及約束蜕劝。

? ? ?4.對(duì)于一般的getter和setter方法不用注釋账忘。

? ? ?5.類、接口熙宇、構(gòu)造函數(shù)、方法溉浙、全局變量必須添加注釋烫止。字段屬性可以選擇添加簡(jiǎn)單注釋。

? ? ?6.簡(jiǎn)單注釋一般不超過(guò)10個(gè)字戳稽。

? ? ?7.特殊地方必須要添加注釋馆蠕。比如一下幾個(gè)地方:典型算法,代碼不明晰處惊奇,在代碼修改處互躬,在循環(huán)和邏輯分支組成代碼處,為他人提供的接口颂郎。

2吼渡、三種注釋方式

?1.單行注釋(single-line)://注釋內(nèi)容

? ? ??一次只能注釋一行,一般是簡(jiǎn)單注釋乓序,用來(lái)簡(jiǎn)短描述某個(gè)變量或?qū)傩运吕遥绦驂K坎背。

? ? ?2.塊注釋(block):/*注釋內(nèi)容*/

? ? ?為了進(jìn)行多行簡(jiǎn)單注釋,一般不使用寄雀。

?????3.文檔注釋:/**注釋內(nèi)容?*/

? ? ?可以使用多行得滤,一般用來(lái)對(duì)類、接口盒犹、成員方法懂更、成員變量、靜態(tài)字段急膀、靜態(tài)方法沮协、常量進(jìn)行說(shuō)明。Javadoc可以用它來(lái)產(chǎn)生代碼的文檔脖阵。為了可讀性皂股,可以有縮進(jìn)和格式控制。

? ? ?文檔注釋常采用一些Javadoc標(biāo)簽進(jìn)行文檔的特定用途描述命黔,用于幫助Javadoc產(chǎn)生文檔呜呐,常用的有:


標(biāo)簽用途說(shuō)明

@author name類/接口描述代碼的作者,每個(gè)作者對(duì)應(yīng)一個(gè)標(biāo)簽悍募。

@Description類/接口/方法對(duì)類蘑辑,方法,接口的簡(jiǎn)單描述

@deprecated類/成員方法說(shuō)明該API已經(jīng)廢除坠宴。

@exception name description 或 @throws name description成員方法描述方法拋出的異常洋魂,每一個(gè)異常對(duì)應(yīng)一個(gè)標(biāo)簽

@param name description成員方法描述成員方法中參數(shù)用途和意義,一個(gè)參數(shù)對(duì)應(yīng)一個(gè)標(biāo)簽

@return description成員方法描述成員方法的返回值的意義

@since類/接口/成員方法描述該API最初出現(xiàn)時(shí)間喜鼓,可以填寫版本號(hào)

@see ClassName類/接口/成員方法/成員變量用于引用特定的類的成員方法的描述副砍,參考轉(zhuǎn)向,一般ClassName是包括包名的全名

@data類/接口/方法用于顯示類庄岖,方法豁翎,接口具體創(chuàng)建時(shí)間,或者修改時(shí)間

@version text類/接口版本

@inheritDoc類/接口/成員方法繼承的文檔

{@link address} 或者 @ linkplain address text}類/接口/方法用于創(chuàng)建一個(gè)指向另一份文檔的超鏈接


3隅忿、實(shí)例

? ? ?1.文件注釋

? ? ?一般作比較詳細(xì)描述心剥,而且在同個(gè)項(xiàng)目里面統(tǒng)一使用,主要包括:版權(quán)聲明背桐,license許可證描述优烧。

?????示例(來(lái)自 spring-framework):

  /*

  * Copyright 2002-2016 the original author or authors.

  *

  * Licensed under the Apache License, Version 2.0 (the "License");

  * you may not use this file except in compliance with the License.

  * You may obtain a copy of the License at

  *

  * http://www.apache.org/licenses/LICENSE-2.0

  *

  * Unless required by applicable law or agreed to in writing, software

  * distributed under the License is distributed on an "AS IS" BASIS,

  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.

  * See the License for the specific language governing permissions and

  * limitations under the License.

  */


?????2.類/接口注釋

? ? ?類,接口描述链峭,一般作詳細(xì)描述畦娄。按照常用的說(shuō)明順序呢排列,主要包括

? ? ? ? ? 1.類的描述,以纷责『床簦或.結(jié)束。

? ? ? ? ? 2.類設(shè)計(jì)的目標(biāo)再膳,完成什么樣的功能一般和類的描述合并在一起挺勿。

? ? ? ? ? 3.<Strong>主要的類使用</Strong>如何使用該類,包括環(huán)境要求喂柒,比如線程是否安全不瓶,并發(fā)性要求以及使用約束。

? ? ? ? ? 4.<Strong>已知的BUG</Strong>

? ? ? ? ? 5.描述類的修改歷史:<Strong>修改人+日期+簡(jiǎn)單說(shuō)明</Strong>

? ? ? ? ? 6.@author作者灾杰、@version版本蚊丐,@see參照,@since開(kāi)始版本信息

?????示例(來(lái)自spring-framework):

?  /**

  * Delegate for resolving constructors and factory methods.

  * Performs constructor resolution through argument matching.

  *

  * @author Juergen Hoeller

  * @author Rob Harrop

  * @author Mark Fisher

  * @author Costin Leau

  * @since 2.0

  * @see #autowireConstructor

  * @see #instantiateUsingFactoryMethod

  * @see AbstractAutowireCapableBeanFactory

  */


? ? ?3.方法注釋

? ? ?方法描述說(shuō)明艳吠,主要對(duì)方法的描述麦备,參數(shù)、返回值昭娩、拋出異常進(jìn)行說(shuō)明凛篙。

? ? ?示例(來(lái)自spring-framework)

? ? ? /**

  * Resolve the factory method in the specified bean definition, if possible.

  * {@link RootBeanDefinition#getResolvedFactoryMethod()} can be checked for the result.

  * @param mbd the bean definition to check

  * @return a BeanWrapper for the new instance

  * @throws Exception in case of any kind of processing failure

  */

? ? ?4.修改注釋

? ? ?在修改處一定要添加注釋,說(shuō)明修改人栏渺,修改原因呛梆,修改內(nèi)容,修改時(shí)間

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末磕诊,一起剝皮案震驚了整個(gè)濱河市填物,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌霎终,老刑警劉巖滞磺,帶你破解...
    沈念sama閱讀 206,482評(píng)論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異莱褒,居然都是意外死亡雁刷,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評(píng)論 2 382
  • 文/潘曉璐 我一進(jìn)店門保礼,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人责语,你說(shuō)我怎么就攤上這事炮障。” “怎么了坤候?”我有些...
    開(kāi)封第一講書人閱讀 152,762評(píng)論 0 342
  • 文/不壞的土叔 我叫張陵胁赢,是天一觀的道長(zhǎng)。 經(jīng)常有香客問(wèn)我白筹,道長(zhǎng)智末,這世上最難降的妖魔是什么谅摄? 我笑而不...
    開(kāi)封第一講書人閱讀 55,273評(píng)論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮系馆,結(jié)果婚禮上送漠,老公的妹妹穿的比我還像新娘。我一直安慰自己由蘑,他們只是感情好闽寡,可當(dāng)我...
    茶點(diǎn)故事閱讀 64,289評(píng)論 5 373
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著尼酿,像睡著了一般爷狈。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上裳擎,一...
    開(kāi)封第一講書人閱讀 49,046評(píng)論 1 285
  • 那天涎永,我揣著相機(jī)與錄音,去河邊找鬼鹿响。 笑死羡微,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的抢野。 我是一名探鬼主播拷淘,決...
    沈念sama閱讀 38,351評(píng)論 3 400
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼指孤!你這毒婦竟也來(lái)了启涯?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書人閱讀 36,988評(píng)論 0 259
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤恃轩,失蹤者是張志新(化名)和其女友劉穎结洼,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體叉跛,經(jīng)...
    沈念sama閱讀 43,476評(píng)論 1 300
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡松忍,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 35,948評(píng)論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了筷厘。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片鸣峭。...
    茶點(diǎn)故事閱讀 38,064評(píng)論 1 333
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖酥艳,靈堂內(nèi)的尸體忽然破棺而出摊溶,到底是詐尸還是另有隱情,我是刑警寧澤充石,帶...
    沈念sama閱讀 33,712評(píng)論 4 323
  • 正文 年R本政府宣布莫换,位于F島的核電站,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏拉岁。R本人自食惡果不足惜坷剧,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,261評(píng)論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望喊暖。 院中可真熱鬧惫企,春花似錦、人聲如沸哄啄。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 30,264評(píng)論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)咨跌。三九已至沪么,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間锌半,已是汗流浹背禽车。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 31,486評(píng)論 1 262
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留刊殉,地道東北人殉摔。 一個(gè)月前我還...
    沈念sama閱讀 45,511評(píng)論 2 354
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像记焊,于是被迫代替她去往敵國(guó)和親逸月。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 42,802評(píng)論 2 345

推薦閱讀更多精彩內(nèi)容

  • Spring Cloud為開(kāi)發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見(jiàn)模式的工具(例如配置管理遍膜,服務(wù)發(fā)現(xiàn)碗硬,斷路器,智...
    卡卡羅2017閱讀 134,599評(píng)論 18 139
  • Android 自定義View的各種姿勢(shì)1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 171,510評(píng)論 25 707
  • 什么是protocal buffer? protocal buffer 以下簡(jiǎn)稱protobuf是google 的...
    碎念楓子閱讀 3,801評(píng)論 8 10
  • 兩天沒(méi)寫作業(yè)了瓢颅,真的是沒(méi)時(shí)間恩尾,爬樓都是草草掃一遍,看到了二班班長(zhǎng)挽懦,看到了貓叔紅包翰意,也看到了大家討論孩子…昨天十一點(diǎn)...
    芳芳Fancy閱讀 186評(píng)論 0 0
  • 文章摘記: 查理·芒格任何時(shí)候都隨身攜帶一本書,即使坐在經(jīng)濟(jì)艙的中間座位信柿,他只要拿著書冀偶,就安之若素。 他說(shuō):“...
    Ethan_Lan閱讀 184評(píng)論 0 0