IDEA类和方法注释模板设置-保姆教程

在讲解怎么设置类和方法注释模板前,先简单介绍下Javadoc 标准,因为注释规范,最终和Javadoc标准契合,效果最好,不仅方便后续出接口文档描述,也是业界的统一标准,更易于接受。

目录

[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

复制下面的规则模板即可:(一般去掉了标签后面的:)

bash 复制代码
#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} {
}

效果如下:每次创建新类后,修改作者和功能描述 说明 即可

java 复制代码
/**
 * 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格式模板

注意第一行,只有一个*而不是/*

在设置参数名时必须用{参数名}的方式,否则第五步中读取不到你设置的参数名

直接复制下面的模板代码:(标签后:已经去掉)

java 复制代码
*
 * 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格式的模板只需要为每个参数选择对应的方法即可:

java 复制代码
方法名:
date()
time()
methodParameters()
methodReturnType()

2、设置成功后点击OK,返回项目新建一个方法,写完入参和返回值以后,在方法上面:

敲出:/** 回车

5、JavaDoc格式

该格式和IDEA格式略有不同:(@param @return)

(1)返回上面第二步中的格式设置:输入下面代码(注意格式)

java 复制代码
*
 * TODO:方法功能描述
 * @author Tom 
 * @since $date$ $time$ $param$ $return$
 **/

(2)参数设置(JavaDoc格式的需要自定义参数以及返回值的实现方式)

获取参数实现方式:

javascript 复制代码
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())

返回值实现方式:

javascript 复制代码
groovyScript("return \"${_1}\" == 'void' ? null : '\\r\\n * @return ' + \"${_1}\"", methodReturnType())

如果返回值不想有包路径,可以使用下面这个参数:

javascript 复制代码
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参数)

相关推荐
Fruit_Caller12 分钟前
static
开发语言·c++
IT枫斗者枫哥5 小时前
MyBatis一对多分页:LIMIT 20,为什么凑不齐20个订单?
java·数据库
代码方舟5 小时前
Java数据工程:利用天远全网运营商三要素优化线上实名认证合规体验
java·人工智能
BBmmo5 小时前
我的 Java 学习笔记 · 第 7 篇:泛型与通配符
java
独泪了无痕5 小时前
Hutool之RandomUtil:随机数生成的终极利器
java·后端
花开路口5 小时前
深入理解 Java/Kotlin 协变与逆变
java·kotlin
运行时异常5 小时前
【WMS 仓储系统集成 AI Agent 实战】第 7 讲:Vue3 前端工程化——Token 刷新锁、Markdown 渲染踩坑与权限体系
java
她的男孩5 小时前
开放接口限流从 20 改到 200 还是每分钟 20 次:拆完防重放+幂等+限流,我找到 5 个静默失效的坑
java·后端·架构
天天被压力5 小时前
【Python 量化取数指南 #13】Python 把行情落库:sqlite 一键存,回测随用随取
java·人工智能·python
天天被压力5 小时前
【Python 量化取数指南 #14】Python 清洗行情数据:复权停牌对齐,回测不翻车
java·人工智能·python