在讲解怎么设置类和方法注释模板前,先简单介绍下Javadoc 标准,因为注释规范,最终和Javadoc 标准契合,效果最好,不仅方便后续出接口文档描述,也是业界的统一标准,更易于接受。
目录
Javadoc 标准标签列表
标签名 |
用途说明 |
@author |
指定类、接口或方法的作者 |
@version |
指定类、接口的版本信息 |
@since |
表示该类或方法从哪个版本开始存在(一般就记录时间) |
@see |
添加一个“参见”链接,可以是其他类、方法或 URL |
@param |
描述方法参数的含义 |
@return |
描述方法返回值的意义 |
@throws/@exception |
描述方法可能抛出的异常 |
@deprecated |
标记类、方法或字段已过时,建议使用替代项 |
@link |
在注释中插入对其他类、方法或字段的内联链接(常用于详细说明中) |
@code |
将文本以代码格式展示,不会被解析为 HTML 或 Javadoc 标签 |
@serial |
用于描述序列化字段的行为(主要用于 Serializable 类) |
@serialField |
用于描述序列化对象的字段(通常在 writeObject/readObject 方法中使用) |
@serialData |
描述写入流的数据(通常在 writeObject 方法中使用) |
(1)@BelongsProject:当前项目的名称(可选,笔者自定的所属项目标签)
(2)@BelongsPackage:当前包的名称(可选,笔者自定的所属包标签)
类注释设置
设置步骤:File-->settings-->Editor-->File and Code Templates-->Files
复制下面的规则模板即可:(一般去掉了标签后面的:)
#if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};
#end
#parse("File Header.java")
/**
* TODO:功能描述
*@author Tom
*@version 1.0
*@since ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
*@BelongsProject ${PROJECT_NAME}
*@BelongsPackage ${PACKAGE_NAME}
*/
public class ${NAME} {
}
效果如下:每次创建新类后,修改作者和功能描述说明即可
/**
* TODO:功能描述
*
* @author Tom
* @version 1.0
* @since 2022-07-03 15:37
* @BelongsProject tome
* @BelongsPackage com.ys.soft.tome.controller
*/
public class ControllerTest {
}
方法注释设置
1、创建模板
IDEA还没有智能到自动为我们创建方法注释,这就是要我们手动为方法添加注释,我们的习惯是 /**+Enter,这里我们也按照这种习惯来设置IDEA的方法注释
1、File-->Settings-->Editor-->Live Templates
(1)新建组:命名为methodGroup
(2)新建模板:选中你刚才创建的组,然后右上角新建模板,命名为*
因为IDEA生成注释的默认方式是:/*+模板名+快捷键(比如若设置模板名为add快捷键用Tab,则生成方式为: /*add+Tab),如果不采用这样的生成方式IDEA中没有内容的方法将不可用,例如获取方法参数的methodParameters()、获取方法返回值的methodReturnType()
2、设置模板内容-IDEA格式模板
注意第一行,只有一个*而不是/*
在设置参数名时必须用${参数名}$的方式,否则第五步中读取不到你设置的参数名
直接复制下面的模板代码:(标签后:已经去掉)
*
* TODO:方法功能描述
* @author Tom
* @since $date$ $time$
* @param $param$
* @return $return$
**/
4、设置模板应用场景
点击模板页面最下方的警告,来设置将模板应用于那些场景,一般选择EveryWhere-->Java即可
(如果曾经修改过,则显示为change而不是define)
第一次是Define,如下:
按下面的图片勾选Java相关选项:直接全选即可
5、设置参数
把右侧的Expand with:改为Enter ;
PS:第4步和第5步顺序不可颠倒,否则第5步将获取不到方法
然后选择右侧的Edit variables按钮
1、IDEA格式的模板只需要为每个参数选择对应的方法即可:
方法名:
date()
time()
methodParameters()
methodReturnType()
2、设置成功后点击OK,返回项目新建一个方法,写完入参和返回值以后,在方法上面:
敲出:/** 回车
5、JavaDoc格式
该格式和IDEA格式略有不同:(@param @return)
(1)返回上面第二步中的格式设置:输入下面代码(注意格式)
*
* TODO:方法功能描述
* @author Tom
* @since $date$ $time$ $param$ $return$
**/
(2)参数设置(JavaDoc格式的需要自定义参数以及返回值的实现方式)
获取参数实现方式:
groovyScript("def result = '';def params = \"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] != '')result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\r\\n ' : '')}; return result == '' ? null : '\\r\\n ' + result", methodParameters())
返回值实现方式:
groovyScript("return \"${_1}\" == 'void' ? null : '\\r\\n * @return ' + \"${_1}\"", methodReturnType())
如果返回值不想有包路径,可以使用下面这个参数:
groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split('<').toList(); for(i = 0; i < params.size(); i++) {if(i!=0){result+='<';}; def p1=params[i].split(',').toList(); for(i2 = 0; i2 < p1.size(); i2++) { def p2=p1[i2].split('\\\\.').toList(); result+=p2[p2.size()-1]; if(i2!=p1.size()-1){result+=','} } ; }; return result", methodReturnType())
(3)设置成功后点击OK,返回项目新建一个方法,写完入参和返回值以后,在方法上面:
敲出:/** 回车
然后会显示:(注意param参数)