java注释规范

前言:

     现在java的出产地sun公司并没有定义一个java注释规范,注释规范目前是每个公司自己有自己的一套规范,主要是为了团队之间的协作。

1、基本规则

     1.注释应该使代码更加清晰易懂

     2.注释要简洁明了,只要提供能够明确理解程序必要的信息就可以了。如果注释太复杂会影响程序整洁度和阅读感。

     3.注释不仅描述程序作了什么,还要描述为什么这样做以及约束。

     4.对于一般的getter和setter方法不用注释。

     5.类、接口、构造函数、方法、全局变量必须添加注释。字段属性可以选择添加简单注释。

     6.简单注释一般不超过10个字。

     7.特殊地方必须要添加注释。比如一下几个地方:典型算法,代码不明晰处,在代码修改处,在循环和逻辑分支组成代码处,为他人提供的接口。

2、三种注释方式

 1.单行注释(single-line)://注释内容

      一次只能注释一行,一般是简单注释,用来简短描述某个变量或属性,程序块。

     2.块注释(block):/*注释内容*/

     为了进行多行简单注释,一般不使用。

     3.文档注释:/**注释内容 */

     可以使用多行,一般用来对类、接口、成员方法、成员变量、静态字段、静态方法、常量进行说明。Javadoc可以用它来产生代码的文档。为了可读性,可以有缩进和格式控制。

     文档注释常采用一些Javadoc标签进行文档的特定用途描述,用于帮助Javadoc产生文档,常用的有:


标签用途说明

@author name类/接口描述代码的作者,每个作者对应一个标签。

@Description类/接口/方法对类,方法,接口的简单描述

@deprecated类/成员方法说明该API已经废除。

@exception name description 或 @throws name description成员方法描述方法抛出的异常,每一个异常对应一个标签

@param name description成员方法描述成员方法中参数用途和意义,一个参数对应一个标签

@return description成员方法描述成员方法的返回值的意义

@since类/接口/成员方法描述该API最初出现时间,可以填写版本号

@see ClassName类/接口/成员方法/成员变量用于引用特定的类的成员方法的描述,参考转向,一般ClassName是包括包名的全名

@data类/接口/方法用于显示类,方法,接口具体创建时间,或者修改时间

@version text类/接口版本

@inheritDoc类/接口/成员方法继承的文档

{@link address} 或者 @ linkplain address text}类/接口/方法用于创建一个指向另一份文档的超链接


3、实例

     1.文件注释

     一般作比较详细描述,而且在同个项目里面统一使用,主要包括:版权声明,license许可证描述。

     示例(来自 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.类/接口注释

     类,接口描述,一般作详细描述。按照常用的说明顺序呢排列,主要包括

          1.类的描述,以。或.结束。

          2.类设计的目标,完成什么样的功能一般和类的描述合并在一起。

          3.<Strong>主要的类使用</Strong>如何使用该类,包括环境要求,比如线程是否安全,并发性要求以及使用约束。

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

          5.描述类的修改历史:<Strong>修改人+日期+简单说明</Strong>

          6.@author作者、@version版本,@see参照,@since开始版本信息

     示例(来自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.方法注释

     方法描述说明,主要对方法的描述,参数、返回值、抛出异常进行说明。

     示例(来自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.修改注释

     在修改处一定要添加注释,说明修改人,修改原因,修改内容,修改时间

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,463评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,868评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,213评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,666评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,759评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,725评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,716评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,484评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,928评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,233评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,393评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,073评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,718评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,308评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,538评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,338评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,260评论 2 352

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,647评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 172,032评论 25 707
  • 什么是protocal buffer? protocal buffer 以下简称protobuf是google 的...
    碎念枫子阅读 3,820评论 8 10
  • 两天没写作业了,真的是没时间,爬楼都是草草扫一遍,看到了二班班长,看到了猫叔红包,也看到了大家讨论孩子…昨天十一点...
    芳芳Fancy阅读 187评论 0 0
  • 文章摘记: 查理·芒格任何时候都随身携带一本书,即使坐在经济舱的中间座位,他只要拿着书,就安之若素。 他说:“...
    Ethan_Lan阅读 188评论 0 0