在Java代码编写时,注释是必不可少的,标准的开发规约中,每个类每个方法都要求进行注释说明,注释并不仅仅是给当前程序的开发者和阅读者提供必要的信息和标记,更是完整的开发流程中重要的组成部分。
通常情况下开发中的注释,需要遵循阿里巴巴Java开发编码规范中的——注释规约,或者遵守公司内部的要求,而不是根据自己的感觉来注释。
什么也比不上放置良好的注释来得有用。什么也不会比乱七八糟的注释更有本事搞乱一个模块。什么也不会比陈旧、提供错误信息的注释更有破坏性。
——《代码整洁之道》
阿里巴巴Java开发编码规范中的注释规约详细规定了代码的注释要求,包括必须强制遵守的,推荐遵守的以及参考意见。
强制:
1.类、类属性、类方法的注释必须使用javadoc规范,使用/**内容*/格式,不得使用//xxx方式。
2.所有的抽象方法(包括接口中的方法)必须使用javadoc注释,除了返回值、参数、异常说明外,还必须指出该方法做什么事情,实现什么功能。
3.所有的类都必须添加创建者和创建日期。
4.方法内部单行注释在被注释语句上另起一行,使用//注释,方法内部多行注释使用/* */注释,注意与代码对齐。
5.所有的枚举类型必须要有注释,说明每个数据项的用途。
推荐:1.与其“半吊子”英文来注释,不如用中文注释把问题说清楚。专有名词和关键字保持英文原文即可。
2.代码修改的同时,注释也要进行相应的修改,尤其是参数、返回值、异常、核心逻辑等的修改。
参考:
1.谨慎注释掉代码。在上面详细说明,而不是简单地注释掉。如果无用则删除。注释删掉会用两种可能性:1.后续会恢复此段代码逻辑。2.永久不用。前者如果没有备注信息难以知晓其动机,后者建议直接删掉。
2.对于注释的要求:能够准确反映设计思路和代码逻辑;能够描述业务含义,使别的程序员能够迅速了解到代码背后的信息。完全没有注释的大段代码对于阅读者如同天书。
3.好的命名、代码结构是自解释的,注释力求精简准确,表达到位。避免出现注释的一个极端:过多的注释,代码逻辑一旦修改,注释的修改是相当大的负担。
4.特殊注释标记,要注明标记人和标记时间。并且要及时处理这些标记,通过标记扫描,经常清理此类标记。
代办事宜(TODO):表明需要实现但目前还未实现的功能。
错误(FIXME) :表明某代码是错误的,而且不能工作,需要及时纠正。
定义一个自定义泛型并注释:
/**
* 带有自定义泛型的方法,泛型占位符为 T ,方法参数数据类型对应自定义泛型类型
* 用于约束当前方法泛型对应的具体数据类型。
*
* @param t 自定义泛型参数
* @param <T> 自定义泛型占位符
* @return 自定义泛型类型,具体数据类型需要通过用户传递实际参数来明确
*/
public static <T> T getType(T t) {
return t;
}