在 idea 中为类和方法自动生成注释

项目规范中有一项常见的要求,在类级和方法级注释里写上创建者和创建时间,在方法级注释里写上创建者和维护者,以及创建时间和最近修改时间。

在网上搜索了一番,发现很多相似功能的帖子。在借鉴他人经验的基础之上,我整合了项目实际需要,整理出这么一篇帖子,当作笔记。如果有什么写得不对的地方,欢迎拍砖。

如有雷同,就是巧合。

首先,设置类级别的注释。

Step 1 点击“File”-->“Settings”-->“File and Code Templates”打开如下对话框,如图 1所示。

图 1

Step 2 在public class ${NAME} {上一行插入

/**
* @author ${USER}
* @date ${DATE} ${TIME}
*/

代码块 1

/**
* @author mojiayi
* @date ${YEAR}-${MONTH}-${DAY} ${HOUR}:${MINUTE}
*/

代码块 2

上述8个变量说明

  1. ${USER}:当前系统登录的用户名,如果你的系统用户名是windows默认的Adminstrator,千万别用,鬼知道你的同事里有多少人也是Administrator;
  2. ${DATE}:当前系统设置的日期格式,作为一个有强迫症的程序员,不能接受同一项目的注释里有超过一种的日期格式;
  3. ${TIME}:当前系统设置的时间格式,作为一个有强迫症的程序员,不能接受同一项目的注释里有超过一种的时间格式;
  4. ${YEAR}:完整的年份,比如 2018;
  5. ${MONTH}:完整的月份,比如 01;
  6. ${DAY}:完整的日期,比如 17;
  7. ${HOUR}:24小时制的小时,比如 16;
  8. ${MINUTE}:完整的分钟,比如 52。

设置好之后,创建新类时自动生成注释。

然后,设置方法级别的注释。

Step 1 点击“File”-->“Settings”-->“Live Templates”打开如下对话框,点击右边绿色的加号,创建一个自定义的Template Group,如图 2所示。

图 2

Step 2 选中刚才创建的Templage Group,点击右边的加号,创建一个Live Template, 如图 3所示。

图 3

Step 3 选中刚才创建的Live Template,输入Abbreviation和Description,Abbreviation非常重要,用于在代码中引入这个注释模板,如图 4所示。

图 4

Step 4 填写Template Text,可以根据自己的需要修改具体的模板内容。

/**
 * @author mojiayi
 * @date $date$ $time$
 $params$
 * @return $returns$
 * @throws 
 * @since 
*/

代码块 3

这里的变量名和前面设置类级别注释不一样,需要在Edit Variables里设置变量对应的表达式,如图 5所示。

表达式说明

  1. date:如果不添加日期格式在表达式里,会使用系统设置的日期格式,可使用与Java语法里相同的语法输入日期格式,比如 date("yyyy-MM-dd");
  2. time:如果不添加时间格式在表达式里,会使用系统设置的时间格式,可使用与Java语法里相同的语法输入时间格式,比如 time("HH:mm")。
  3. params:groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+='* @param ' + params[i] + ((i < params.size() - 1) ? '\\n ' : '')}; return result", methodParameters())
  4. returns:methodReturnType()

图 5

最后,使用模板。

  1. 保存所创建的模板后,新建一个Java文件时,会自动生成类级注释,如图6所示。
  2. 添加方法级注释时,在方法名的上一行输入之前定义的Abbreviation,根据提示选中后回车就会生成方法级注释,如图 6 和图 7所示。

直接在方法名上输入短语时(如图6),产生的注释里params和return为null(如图7),但是如果在方法上加任意注解,在注解和方法名之间输入短语,就能正常产生注释(如图8和图9),不知道为什么。

图 6

图 7

图 8


转自:https://my.oschina.net/mojiayi/blog/1608746

猜你喜欢

转载自blog.csdn.net/u011314442/article/details/80936030
今日推荐