1 场景
方法的注释,一般包含作者、创建时间、功能描述、输入参数、返回值,如果每个方法的注释都手写,非常耗时,且容易随着后期变更代码导致差异,不好维护。
public class Pencil {
/**
* @Author 张三 010223
* @date 2024-08-08 14:08:09
* @description 计算两数的和
* @param a
* @param b
* @return java.lang.String
*/
public String addTowNumber(int a, int b) {
return String.valueOf(a+b);
}
}
IDEA使用LiveTemplate快速生成方法注释,可以自动生成方法注释中的“作者、创建时间、输入参数、返回值”,仅需要手写“功能描述”,减少因写注释带来的工作量。
这里的addTowNumber方法的注释,内容为输入“/**”,加“回车”后自动生成,只有功能描述的“计算两数的和”为手动添加。
2 要点
2.1 新增LiveTemplate模版
按顺序点击菜单 File->Settings->Editor->Live Templates,来到LiveTemplate的配置页面。
点击右侧“+”按钮,先选择“2.Template Group”新增一个组别,再在该组别下,选择“1.Live Template”新增一个模板。
这里新增了“UserTemplate”组,以及内部新增了“*”模版。
内容填写下文会继续介绍。
2.2 模版内容填写
(1)Abbreviation: *
“*”表示匹配字符,在使用时,一般先输入“/**”,其中第二个“*”就会被替换成“Template text”中的内容。
(2)Description: 方法注释
模版的描述信息,不写也没事。
(3)Template text:
模版内容,即匹配字符会被替换成的目标内容,其中$date$、$time$、$param$、$return$表示变量,需要继续配置来源填充。
*
* @Author 姓名 工号
* @date $date$ $time$
* @description 功能描述
$param$
* @return $return$
*/
注意,此处的开头不能偷懒写成“/**”,这会导致$date$、$time$、$param$、$return$被块注释包裹,无法实现变量赋值。
(4)define: java
必须配置,否则无法匹配对应语言的文件类型,无法生效。
(5)Expand with: Enter
匹配字符后面的快捷键生效方式,Enter表示回车,即前面输入“/**”后,接着“回车”即可实现替换。
(6)EDIT VARIABLES:
编辑$date$、$time$、$param$、$return$变量的取值来源。
1)date: date(“yyyy-MM-dd”)
2)time: time(“HH:MM:ss”)
3)param:
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 : result;", methodParameters())
4)return:
groovyScript("def result = '';def param = \"${_1}\".replaceAll('[\\\\[|\\\\]\\\\s]', '');result = param;return result == '' ? null : result;", methodReturnType())
输入参数param、输出参数return使用了groovyScript脚本,代码都在一行比较难读,展开如下:
//param输入参数
groovyScript("
def result = ''; //定义返回变量
def params = \"${_1}\".replaceAll('[\\\\[|\\\\]\\\\s]', '').split(',').toList(); //获取mothodParamters()函数的第一个返回值,并去除[、]、空格字符
//遍历params,将每一个参数转换成字符串,赋予result
for (i=0; i<params.size(); i++) {
if (params[i] != '') {
result += ' * @param ' + params[i] + ((i < params.size()-1) ? '\\r\\n' : '')
}
};
//返回result
return result == '' ? null : result;
", methodParameters())
//return输出参数
groovyScript("
def result = ''; //定义返回变量
def param = \"${_1}\".replaceAll('[\\\\[|\\\\]\\\\s]', ''); //获取methodReturnType()函数的第一个返回值,并去除[、]、空格字符
result = param; //设置返回值
return result == '' ? null : result; //返回result
", methodReturnType())
3 练习手段
可以参考“2 要点”章节,在自己的项目中尝试用LiveTemplate配置方法注解,提升效率。