此文章发布于33
个月前,部分信息可能已经过时
,请自行斟酌确认。
在用 Java
或 Kotlin
编写方法
时建议编写完善的注释,包含每个参数的意义和返回的内容,下面介绍在 IDEA
中自动生成方法注释的技巧。
特别是我平时使用 Kotlin
比较多,而 Kotlin
的注释生成和 Java
有点不同,请往下看。
一、需求描述
默认 Java
方法输入 /**
回车会自动生成方法注释,并添加方法参数。
但我们可能想在注释中添加作者和日期
,就得用到 IDEA 的实时模板
功能了(代码片段)。
Java 生成的默认注释:
/**
*
* @param username
* @param password
* @return
*/
public String index(String username, Integer password) {
return "xinggang";
}
我们期望生成这样的注释:
/**
*
* @param username
* @param password
* @return java.lang.String
* @author xinggang
* @create 2022/02/24
**/
public String index(String username, Integer password) {
return "xinggang";
}
二、解决方案
打开 IDEA 设置:文件 | 设置 | 编辑器 | 实时模板
,增加一个模板,设置如下,注意标记的 4
处。
1、缩写用 *
2、模板文本(注意开始是个 *
,不是 /*
)
*
* $name$
* $param$
* @return $return$
* @author xinggang
* @create $date$
**/
3、作用于 Java
、Kotlin(Kotlin 获取不到方法参数,解决方案见本文后面章节)
4、展开方式 Enter
(当然也可以选择自己喜欢的如 Tab
)
5、编辑变量
其中 param
变量表达式:
groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {if(params[i] == '') return result;if(i==0) result += '\\n'; result+=' * @param ' + params[i] + ((i < params.size() - 1) ? '\\n' : '')}; return result", methodParameters())
6、使用:输入 /**
后回车,生成注释如下,光标会定位在开始位置方便输入方法的名称及描述等。
/**
* |
* @param username
* @param password
* @return java.lang.String
* @author xinggang
* @create 2022/02/24
**/
public String index(String username, Integer password) {
return "xinggang";
}
三、Kotlin 获取不到参数
1、若不使用
上面的模板,Kotlin 默认输入 /**
也不会
自动生成带参数的注释,这是因为 IDEA 默认没有安装 kdoc-generator
插件。
2、即使使用
上面的模板,Kotlin 方法上也无法获取方法参数
。
本文模板输出的内容(获取不到参数)
/**
*
* @param null
* @return
* @author xinggang
* @create 2022/02/24
**/
fun saveData(billNO: String, pcqy: String, currUser: SysUser): Any {
。。。
}
适用于 Kotlin 的变通解决方案:
我思前想后终于找到一个不算完美但用起来倒也舒爽的变通方案。
1、安装 kdoc 插件
安装 kdoc-generator
插件后即可自动生成带参数的方法注释。
kdoc 生成的注释如下:
/**
* TODO
*
* @param billNO
* @param pcqy
* @param currUser
* @return
*/
fun saveData(billNO: String, pcqy: String, currUser: SysUser): Any {
。。。
}
2、修改上面的模板
将之前定义的 *
模板适用范围去掉 kotlin
,即 kotlin 中不再使用上面定义的模板,如果一开始就没有勾选 kotlin 则忽略此步。
3、新增加模板 TODO
方法不再赘述,和之前的一样,直接看图。
模板文本:
$name$$END$
* @author xinggang
* @create $date$
4、使用
这样就 OK
了,使用时先按 /** 回车
输入 kdoc 的默认注释,这时光标停留在 TODO
位置,这时再直接按 Tab
就调用 TODO
模板补全内容了。
效果动图:
四、日期格式化
默认日期格式为 yyyy/MM/dd
,自定义可使用 groovy
语法:
groovyScript("import java.text.SimpleDateFormat;return (new SimpleDateFormat(\"yyyy-MM-dd\")).format(new Date())")
完🏝️。